From ac769e656b122ff569c3f1534701b71e00fed586 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 27 Oct 2020 19:21:35 +0800 Subject: Split front and back end. --- Timeline/Routes/ApiRoutePrefixConvention.cs | 46 ---------------------------- Timeline/Routes/UnknownEndpointMiddleware.cs | 39 ----------------------- 2 files changed, 85 deletions(-) delete mode 100644 Timeline/Routes/ApiRoutePrefixConvention.cs delete mode 100644 Timeline/Routes/UnknownEndpointMiddleware.cs (limited to 'Timeline/Routes') diff --git a/Timeline/Routes/ApiRoutePrefixConvention.cs b/Timeline/Routes/ApiRoutePrefixConvention.cs deleted file mode 100644 index ca38a0d9..00000000 --- a/Timeline/Routes/ApiRoutePrefixConvention.cs +++ /dev/null @@ -1,46 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.ApplicationModels; -using Microsoft.AspNetCore.Mvc.Infrastructure; -using Microsoft.AspNetCore.Mvc.Routing; -using System.Linq; - -namespace Timeline.Routes -{ - public static class MvcOptionsExtensions - { - public static void UseApiRoutePrefix(this MvcOptions opts, IRouteTemplateProvider routeAttribute) - { - opts.Conventions.Add(new ApiRoutePrefixConvention(routeAttribute)); - } - - public static void UseApiRoutePrefix(this MvcOptions opts, string prefix) - { - opts.UseApiRoutePrefix(new RouteAttribute(prefix)); - } - } - - public class ApiRoutePrefixConvention : IApplicationModelConvention - { - private readonly AttributeRouteModel _routePrefix; - - public ApiRoutePrefixConvention(IRouteTemplateProvider route) - { - _routePrefix = new AttributeRouteModel(route); - } - - public void Apply(ApplicationModel application) - { - foreach (var selector in application.Controllers.Where(c => c.Filters.Any(f => f is IApiBehaviorMetadata)).SelectMany(c => c.Selectors)) - { - if (selector.AttributeRouteModel != null) - { - selector.AttributeRouteModel = AttributeRouteModel.CombineAttributeRouteModel(_routePrefix, selector.AttributeRouteModel); - } - else - { - selector.AttributeRouteModel = _routePrefix; - } - } - } - } -} diff --git a/Timeline/Routes/UnknownEndpointMiddleware.cs b/Timeline/Routes/UnknownEndpointMiddleware.cs deleted file mode 100644 index 25ec563c..00000000 --- a/Timeline/Routes/UnknownEndpointMiddleware.cs +++ /dev/null @@ -1,39 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Http; -using System; -using System.Net.Mime; -using System.Text.Json; -using Timeline.Models.Http; - -namespace Timeline.Routes -{ - public static class UnknownEndpointMiddleware - { - public static void Attach(IApplicationBuilder app) - { - app.Use(async (context, next) => - { - if (context.GetEndpoint() != null) - { - await next(); - return; - } - - if (context.Request.Path.StartsWithSegments("/api", StringComparison.OrdinalIgnoreCase)) - { - context.Response.StatusCode = StatusCodes.Status400BadRequest; - context.Response.ContentType = MediaTypeNames.Application.Json; - - var body = JsonSerializer.SerializeToUtf8Bytes(ErrorResponse.Common.UnknownEndpoint(), new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }); - - context.Response.ContentLength = body.Length; - await context.Response.Body.WriteAsync(body); - await context.Response.CompleteAsync(); - return; - } - - await next(); - }); - } - } -} -- cgit v1.2.3