From e4773f3154086d4df07ca57e156db2068c3769db Mon Sep 17 00:00:00 2001 From: xRain Date: Sun, 23 Aug 2020 21:42:41 +0800 Subject: [PATCH] fix error response message, error namespace. now useMiddleware dont need api doc title --- Controllers/SimApiBaseController.cs | 2 +- Helpers/SimApiAuth.cs | 5 ++++- Middlewares/SimApiExceptionMiddleware.cs | 9 ++++++++- SimApiExtensions.cs | 23 +++++++++++++---------- 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/Controllers/SimApiBaseController.cs b/Controllers/SimApiBaseController.cs index 2482c71..046aae4 100644 --- a/Controllers/SimApiBaseController.cs +++ b/Controllers/SimApiBaseController.cs @@ -72,7 +72,7 @@ namespace SimApi.Controllers /// 检测条件 /// 错误代码 /// 错误描述 - protected static void ErrorWhenNull(object condition, int code = 404, string message = "请求的资源不存在") + protected static void ErrorWhenNull(object condition, int code = 404, string message = "") { ErrorWhen(condition == null, code, message); } diff --git a/Helpers/SimApiAuth.cs b/Helpers/SimApiAuth.cs index f7c82ac..fd5ed55 100644 --- a/Helpers/SimApiAuth.cs +++ b/Helpers/SimApiAuth.cs @@ -55,7 +55,10 @@ namespace SimApi.Helpers /// 登陆标识 public void Logout(string uuid) { - Cache.Remove(uuid); + if (!string.IsNullOrEmpty(uuid)) + { + Cache.Remove(uuid); + } } } diff --git a/Middlewares/SimApiExceptionMiddleware.cs b/Middlewares/SimApiExceptionMiddleware.cs index 626c816..566bce6 100644 --- a/Middlewares/SimApiExceptionMiddleware.cs +++ b/Middlewares/SimApiExceptionMiddleware.cs @@ -30,7 +30,14 @@ namespace SimApi.Middlewares } catch (SimApiException ex) { - response.SetCodeMsg(ex.Code, ex.Message); + if (string.IsNullOrEmpty(ex.Message)) + { + response.SetCode(ex.Code); + } + else + { + response.SetCodeMsg(ex.Code, ex.Message); + } ErrorResponse(context, response); } catch (Exception ex) diff --git a/SimApiExtensions.cs b/SimApiExtensions.cs index ec9ab02..7f475a3 100644 --- a/SimApiExtensions.cs +++ b/SimApiExtensions.cs @@ -13,6 +13,9 @@ namespace SimApi /// public static class Extensions { + public static string DocumentTitle = ""; + public static string DocumentDescription = ""; + //**********快捷添加************** /// @@ -36,9 +39,9 @@ namespace SimApi /// /// /// - public static IApplicationBuilder UseSimApi(this IApplicationBuilder builder, string title = "API文档", params SubmitMethod[] submitMethods) + public static IApplicationBuilder UseSimApi(this IApplicationBuilder builder, params SubmitMethod[] submitMethods) { - return builder.UseSimApiException().UseSimApiDoc(title, submitMethods).UseMiddleware().UseCors(x => x.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin()).UseSimApiUpload(); + return builder.UseSimApiException().UseSimApiDoc(submitMethods).UseMiddleware().UseCors(x => x.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin()).UseSimApiUpload(); } @@ -75,9 +78,11 @@ namespace SimApi public static IServiceCollection AddSimApiDoc(this IServiceCollection builder, string title, string description = null) { + DocumentTitle = title; + DocumentDescription = description; return builder.AddSwaggerGen(x => { - x.SwaggerDoc("api", new OpenApiInfo { Title = title, Description = description }); + x.SwaggerDoc("api", new OpenApiInfo { Title = DocumentTitle, Description = DocumentDescription }); x.EnableAnnotations(); x.AddSecurityRequirement(new OpenApiSecurityRequirement { @@ -126,14 +131,13 @@ namespace SimApi /// 文档标题 /// 文档支持的提交方式(如果不指定,默认使用POST) /// - public static IApplicationBuilder UseSimApiDoc(this IApplicationBuilder builder, string title, - params SubmitMethod[] submitMethods) + public static IApplicationBuilder UseSimApiDoc(this IApplicationBuilder builder, params SubmitMethod[] submitMethods) { return builder.UseSwagger(x => x.RouteTemplate = "docs/{documentName}.json").UseSwaggerUI(x => { x.RoutePrefix = "docs"; - x.DocumentTitle = title; - x.SwaggerEndpoint("/docs/api.json", name: title); + x.DocumentTitle = DocumentTitle; + x.SwaggerEndpoint("/docs/api.json", name: DocumentTitle); x.EnableValidator(); if (submitMethods.Length > 0) { @@ -156,10 +160,9 @@ namespace SimApi /// 文档标题 /// API提交方式定义 /// - public static IApplicationBuilder UseSimApiDocEx(this IApplicationBuilder builder, string title = "API文档", - params SubmitMethod[] submitMethods) + public static IApplicationBuilder UseSimApiDocEx(this IApplicationBuilder builder, params SubmitMethod[] submitMethods) { - return builder.UseSimApiException().UseSimApiDoc(title, submitMethods); + return builder.UseSimApiException().UseSimApiDoc(submitMethods); } ///