<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      ABP中關于Swagger的一些配置

      Abp 集成 Swagger 官方文檔, 請參考 Swagger Integration

      AspNetCore 配置 Swagger, 請參考 Swashbuckle.AspNetCore

      本文的項目環境是 AspNetCore 6.0 + Volo.Abp.Swashbuckle 6.0.2

      Abp 中默認的基礎配置如下:

      public override void ConfigureServices(ServiceConfigurationContext context)
      {
          var services = context.Services;
          services.AddAbpSwaggerGen(
              options =>
              {
                  options.SwaggerDoc("v1", new OpenApiInfo { Title = "Test API", Version = "v1" });
                  options.DocInclusionPredicate((docName, description) => true);
                  options.CustomSchemaIds(type => type.FullName);
              }
          );
      }
      

      這樣的配置,很難滿足我們的需求,比如它默認顯示了 Abp 相關的 endpoints 和 schema, 沒有詳細的接口注釋等

      image

      image

      隱藏 Abp 相關的 endpoints

      Abp 官方文檔 提及了這個操作,代碼如下

      services.AddAbpSwaggerGen(
          options =>
          {
              options.HideAbpEndpoints();
          }
      );
      

      隱藏 Abp 相關的 schemas

      這個在官網中沒有發現,搜索到可以實現自定義的 ISchemaFilter
      參考: Hide Endpoints And Schemas from Swagger / OpenAPI

      public class HideAbpSchemaFilter : ISchemaFilter
      {
          public void Apply(OpenApiSchema schema, SchemaFilterContext context)
          {
              context.SchemaRepository.Schemas.RemoveAll(item => item.Key.StartsWith("Volo."));
          }
      }
      
      //使用方法
      services.AddAbpSwaggerGen(
          options =>
          {
              options.SchemaFilter<HideAbpSchemaFilter>();
          }
      );
      

      隱藏 Abp 默認生成的響應類型

      Abp 默認生成了 400,401,403,404,500,501 相關的響應

      image

      通過 AbpAspNetCoreMvcModule 這個模塊的源碼,我們看到了它的默認實現如下:

      Configure<AbpRemoteServiceApiDescriptionProviderOptions>(options =>
      {
          var statusCodes = new List<int>
          {
              (int) HttpStatusCode.Forbidden,
              (int) HttpStatusCode.Unauthorized,
              (int) HttpStatusCode.BadRequest,
              (int) HttpStatusCode.NotFound,
              (int) HttpStatusCode.NotImplemented,
              (int) HttpStatusCode.InternalServerError
          };
      
          options.SupportedResponseTypes.AddIfNotContains(statusCodes.Select(statusCode => new ApiResponseType
          {
              Type = typeof(RemoteServiceErrorResponse),
              StatusCode = statusCode
          }));
      });
      

      那就很好解決了,我們只要把它給清除就行了,代碼如下

      Configure<AbpRemoteServiceApiDescriptionProviderOptions>(options =>
      {
          options.SupportedResponseTypes.Clear();
      });
      

      接口注釋

      這個簡單,只要包含項目的 XML 文檔注釋就行

      var xmlFilename1 = "EOA.User.WebApi.xml";
      var xmlFilename2 = "EOA.User.Application.xml";
      var xmlFilename3 = "EOA.User.Application.Contracts.xml";
      options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename1));
      options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename2));
      options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename3));
      

      別忘了開啟生成項目的文檔注釋(可以直接編輯.csproj 文件)

      <PropertyGroup>
          <TargetFramework>net6.0</TargetFramework>
          <Nullable>enable</Nullable>
          <ImplicitUsings>enable</ImplicitUsings>
          <GenerateDocumentationFile>true</GenerateDocumentationFile>
          <NoWarn>$(NoWarn);1591</NoWarn>
      </PropertyGroup>
      

      修改 Schema 默認的時間格式

      image

      直接全局修改 DateTime 類型的 Schema 配置即可,給個默認的 Example

      options.MapType<DateTime>(() => new OpenApiSchema { Type = "string", Example = new Microsoft.OpenApi.Any.OpenApiString("2000-01-01 00:00:00") });
      

      結束

      本文也是實際記錄我發現的一點小問題, 這么一頓操作下來是不是清爽多了

      posted @ 2023-10-17 15:50  Broadm  閱讀(1746)  評論(11)    收藏  舉報
      主站蜘蛛池模板: 福利一区二区不卡国产| 国产色a在线观看| 男女无遮挡激情视频| 亚洲国产色一区二区三区| 成人无码www在线看免费| 国产乱码日产乱码精品精| 精品人妻日韩中文字幕| 2020无码专区人妻系列日韩| 深夜放纵内射少妇| 欧美交a欧美精品喷水| 柞水县| 亚洲精品国男人在线视频| 又色又污又爽又黄的网站| 泊头市| 亚洲午夜香蕉久久精品| 一本无码人妻在中文字幕免费| 小污女小欲女导航| 少妇人妻av毛片在线看| 大尺度国产一区二区视频| 国产女人18毛片水真多1| 亚洲综合国产一区二区三区| 国产精品va在线观看无码| 亚洲精品乱码久久观看网| 少妇人妻偷人一区二区| 影音先锋男人站| 国内偷自第一区二区三区| 亚洲av成人一区在线| 欧美自拍嘿咻内射在线观看| 成人午夜免费无码视频在线观看| 中文字幕无码免费久久| 人妻系列中文字幕精品| 久久热精品视频在线视频| 亚洲国产成人精品无码区在线观看 | 中文字幕亚洲人妻一区| 亚洲老妇女亚洲老熟女久| 桃花岛亚洲成在人线AV| 中文字幕人妻不卡精品| 久久久精品94久久精品| 加勒比亚洲视频在线播放| 娇妻玩4p被三个男人伺候| 自拍偷自拍亚洲精品情侣|