博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
net core 3.1 swagger文档添加 不用xml配置
阅读量:3965 次
发布时间:2019-05-24

本文共 3392 字,大约阅读时间需要 11 分钟。

使用特性来描述接口而不是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 #endregion20 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
Add1([FromForm] string name) { return ResponseModel.Succeed(name); } }}

访问https://localhost:5001/swagger/index.html   换成自己的调试链接

效果图如下

 

转载地址:http://kduki.baihongyu.com/

你可能感兴趣的文章
Discover Feature Engineering, How to Engineer Features and How to Get Good at It
查看>>
36辆车,6条跑道,无计时器,最少几次比赛可以选出前三
查看>>
matlab2012b与matlab7.1执行set(gca,'Yscale','log')之后画到的直方图结果居然不同
查看>>
回文题
查看>>
AJAX应用之注册用户即时检测
查看>>
File 类小结
查看>>
java除去字符串空格
查看>>
jsp 2.0标记文件
查看>>
Hibernate中Criteria的完整用法
查看>>
sql jsp
查看>>
spring beans beanfactory applicationcontext
查看>>
使用ORM工具进行数据访问
查看>>
使用ORM工具进行数据访问
查看>>
编译与部署Eclipse+Tomcat+MySQL+Liferay4.1.2
查看>>
杭电ACM——6463(思维)
查看>>
杭电ACM——2069,Coin Change(DP)
查看>>
杭电ACM——2110,Crisis of HDU(母函数)
查看>>
杭电AM——2152,Fruit(母函数)
查看>>
杭电ACM——2566,统计硬币(DP)
查看>>
堆栈(数据结构)
查看>>