From ed5b550e8a19be250952371c60e1c1f3d2864a1e Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 23 Aug 2020 16:12:33 +0800 Subject: Add error code to swagger description. --- Timeline/Startup.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Timeline/Startup.cs') diff --git a/Timeline/Startup.cs b/Timeline/Startup.cs index 86bdaf54..cbca01d0 100644 --- a/Timeline/Startup.cs +++ b/Timeline/Startup.cs @@ -104,6 +104,7 @@ namespace Timeline document.DocumentName = "Timeline"; document.Title = "Timeline REST API Reference"; document.Version = typeof(Startup).Assembly.GetName().Version?.ToString() ?? "unknown version"; + document.DocumentProcessors.Add(new DocumentDescriptionDocumentProcessor()); document.DocumentProcessors.Add( new SecurityDefinitionAppender("JWT", new OpenApiSecurityScheme @@ -111,7 +112,7 @@ namespace Timeline Type = OpenApiSecuritySchemeType.ApiKey, Name = "Authorization", In = OpenApiSecurityApiKeyLocation.Header, - Description = "Type into the textbox: Bearer {your JWT token}." + Description = "Create token via `/api/token/create` ." })); document.OperationProcessors.Add(new AspNetCoreOperationSecurityScopeProcessor("JWT")); document.OperationProcessors.Add(new DefaultDescriptionOperationProcessor()); @@ -153,7 +154,7 @@ namespace Timeline } app.UseOpenApi(); - app.UseSwaggerUi3(); + app.UseReDoc(); app.UseAuthentication(); app.UseAuthorization(); -- cgit v1.2.3 From b1b10b7dda86138d020b1545b4de55b37ee793b3 Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 23 Aug 2020 17:17:04 +0800 Subject: Add produces and consumes . --- Timeline/Controllers/TimelineController.cs | 3 ++- Timeline/Controllers/UserAvatarController.cs | 2 +- Timeline/Helpers/DataCacheHelper.cs | 2 +- Timeline/Startup.cs | 4 ++++ 4 files changed, 8 insertions(+), 3 deletions(-) (limited to 'Timeline/Startup.cs') diff --git a/Timeline/Controllers/TimelineController.cs b/Timeline/Controllers/TimelineController.cs index 43178ac6..90b50bbb 100644 --- a/Timeline/Controllers/TimelineController.cs +++ b/Timeline/Controllers/TimelineController.cs @@ -199,7 +199,8 @@ namespace Timeline.Controllers /// If-None-Match header. /// The data. [HttpGet("timelines/{name}/posts/{id}/data")] - [ProducesResponseType(StatusCodes.Status200OK)] + [Produces("image/png", "image/jpeg", "image/gif", "image/webp", "application/json", "text/json")] + [ProducesResponseType(typeof(byte[]), StatusCodes.Status200OK)] [ProducesResponseType(typeof(void), StatusCodes.Status304NotModified)] [ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status403Forbidden)] diff --git a/Timeline/Controllers/UserAvatarController.cs b/Timeline/Controllers/UserAvatarController.cs index 32f63fc6..97c4bdb8 100644 --- a/Timeline/Controllers/UserAvatarController.cs +++ b/Timeline/Controllers/UserAvatarController.cs @@ -3,7 +3,6 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using System; -using System.IO; using System.Threading.Tasks; using Timeline.Auth; using Timeline.Filters; @@ -46,6 +45,7 @@ namespace Timeline.Controllers /// If-None-Match header. /// Avatar data. [HttpGet("users/{username}/avatar")] + [Produces("image/png", "image/jpeg", "image/gif", "image/webp", "application/json", "text/json")] [ProducesResponseType(typeof(byte[]), StatusCodes.Status200OK)] [ProducesResponseType(typeof(void), StatusCodes.Status304NotModified)] [ProducesResponseType(StatusCodes.Status404NotFound)] diff --git a/Timeline/Helpers/DataCacheHelper.cs b/Timeline/Helpers/DataCacheHelper.cs index 574d90b4..1ad69708 100644 --- a/Timeline/Helpers/DataCacheHelper.cs +++ b/Timeline/Helpers/DataCacheHelper.cs @@ -107,7 +107,7 @@ namespace Timeline.Helpers controller.Response.Headers.Add(ETagHeaderKey, eTagValue); controller.Response.Headers.Add(CacheControlHeaderKey, GenerateCacheControlHeaderValue()); - return controller.StatusCode(StatusCodes.Status304NotModified); + return controller.StatusCode(StatusCodes.Status304NotModified, null); } } diff --git a/Timeline/Startup.cs b/Timeline/Startup.cs index cbca01d0..82c231cb 100644 --- a/Timeline/Startup.cs +++ b/Timeline/Startup.cs @@ -1,6 +1,7 @@ using AutoMapper; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Infrastructure; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; @@ -11,6 +12,7 @@ using NSwag; using NSwag.Generation.Processors.Security; using System; using System.ComponentModel; +using System.Net.Mime; using System.Text.Json.Serialization; using Timeline.Auth; using Timeline.Configs; @@ -50,6 +52,8 @@ namespace Timeline { setup.InputFormatters.Add(new StringInputFormatter()); setup.InputFormatters.Add(new BytesInputFormatter()); + setup.Filters.Add(new ConsumesAttribute(MediaTypeNames.Application.Json, "text/json")); + setup.Filters.Add(new ProducesAttribute(MediaTypeNames.Application.Json, "text/json")); setup.UseApiRoutePrefix("api"); }) .AddJsonOptions(options => -- cgit v1.2.3