<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          net core 3.1 swagger文檔添加 不用xml配置

          共 3750字,需瀏覽 8分鐘

           ·

          2020-11-02 11:13


          使用特性來描述接口而不是xml文件,使用特性可自定義接口在swaggerUI上的描述

          安裝nuget包:Swashbuckle.AspNetCore.SwaggerUISwashbuckle.AspNetCore.Annotations,配置swagger:

           1  public void ConfigureServices(IServiceCollection services)
          2 {
          3 services.Configure(Configuration); 4
          5
          6 #region 添加Swagger
          7 services.AddSwaggerGen(opt=> {
          8 opt.SwaggerDoc(swaggerDocName, new OpenApiInfo() { Version="v1",Title="watch api",Description="watch"});
          9 //使用annotation來描述接口 不依賴xml文件
          10 opt.EnableAnnotations();
          11
          12 // 下面兩句,將swagger文檔中controller名使用GroupName替換
          13 // 在Swagger中,一個Tag可以看作是一個API分組
          14 opt.DocInclusionPredicate((_, apiDescription) => string.IsNullOrWhiteSpace(apiDescription.GroupName) == false);
          15 opt.SwaggerGeneratorOptions.TagsSelector = (apiDescription) => new[] { apiDescription.GroupName };
          16
          17 });
          18
          19 #endregion
          20
          21 services.AddControllers();
          22
          23
          24
          25
          26
          27 }

          使用上面注入好的swagger

            // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
          public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
          {




          if (env.IsDevelopment())
          {
          app.UseDeveloperExceptionPage();
          }
          #region Swagger

          app.UseSwagger(opt
          =>
          {
          // 相對路徑加載swagger文檔
          //opt.RouteTemplate = "swagger/{documentName}";
          })
          .UseSwaggerUI(opt
          =>
          {
          opt.SwaggerEndpoint($
          "{swaggerDocName}/swagger.json", "watch API文檔");
          });
          #endregion
          app.UseHttpsRedirection();

          app.UseRouting();


          app.UseEndpoints(endpoints
          =>
          {
          endpoints.MapControllers();
          });
          }

          Controller和Action上使用特性:ApiExplorerSettingsSwaggerOperation

          namespace WatchApi.Controllers
          {
          [ApiExplorerSettings(GroupName
          = "品牌")]
          [Route(
          "[controller]/[action]")]
          [ApiController]
          public class pinpaiController : ControllerBase
          {
          private readonly IMapper _mapper;
          private readonly IpinpaiService _pinpaiserver;
          public pinpaiController(IpinpaiService pinpaiserver, IMapper mapper)
          {
          _pinpaiserver
          = pinpaiserver;
          _mapper
          = mapper;
          }
          [SwaggerOperation(Summary
          = "獲取列表")]
          [HttpGet]
          public ResponseModel> Get()
          {
          var resModel = _pinpaiserver.GetListpinpai();
          return ResponseModel.Succeed>(resModel);
          }
          [SwaggerOperation(Summary
          = "添加商品")]
          [HttpPost,Authorize]
          public ResponseModel Add(pinpai pinpaiobj)
          {
          //pinpaiRequest obj
          //var pinpaiobj1 = _mapper.Map(pinpaiobj);
          var result = _pinpaiserver.Addpinpai(pinpaiobj);
          if (result)
          {
          return ResponseModel.Succeed();
          }
          else
          {
          return ResponseModel.Failed();
          }

          }

          [HttpPost]
          public ResponseModel<string> Add1([FromForm] string name)
          {
          return ResponseModel.Succeed(name);
          }

          }
          }

          訪問https://localhost:5001/swagger/index.html? ?換成自己的調(diào)試鏈接

          效果圖如下


          往期精彩回顧




          【推薦】.NET Core開發(fā)實戰(zhàn)視頻課程?★★★

          .NET Core實戰(zhàn)項目之CMS 第一章 入門篇-開篇及總體規(guī)劃

          【.NET Core微服務實戰(zhàn)-統(tǒng)一身份認證】開篇及目錄索引

          Redis基本使用及百億數(shù)據(jù)量中的使用技巧分享(附視頻地址及觀看指南)

          .NET Core中的一個接口多種實現(xiàn)的依賴注入與動態(tài)選擇看這篇就夠了

          10個小技巧助您寫出高性能的ASP.NET Core代碼

          用abp vNext快速開發(fā)Quartz.NET定時任務管理界面

          在ASP.NET Core中創(chuàng)建基于Quartz.NET托管服務輕松實現(xiàn)作業(yè)調(diào)度

          現(xiàn)身說法:實際業(yè)務出發(fā)分析百億數(shù)據(jù)量下的多表查詢優(yōu)化

          關(guān)于C#異步編程你應該了解的幾點建議

          C#異步編程看這篇就夠了


          瀏覽 32
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产乱码一区二区三区的解决方法 | 嫩草成人 | 丁香激情五月 | 超碰国产97 | 亚洲日韩国产剧情自制在线观看 |