vs nuget 内安装 Swashbuckle.AspNetCore
在program.cs内加入下边 几行基本就可以了
//builder.Services.AddSwaggerGen(); // <snippet_Services> builder.Services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "ToDo API", Description = "An ASP.NET Core Web API for managing ToDo items", TermsOfService = new Uri("https://example.com/terms"), Contact = new OpenApiContact { Name = "Example Contact", Url = new Uri("https://example.com/contact") }, License = new OpenApiLicense { Name = "Example License", Url = new Uri("https://example.com/license") } }); options.CustomSchemaIds(x => x.FullName); options.ResolveConflictingActions(apiDescriptions => apiDescriptions.First()); // using System.Reflection; var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename), true); //假如需要显示控制器注释,就添加true }); // </snippet_Services> var app = builder.Build(); app.UseSwagger(); app.UseSwaggerUI();
加入到主页,项目启动默认是swagger
// 如果没有其他路由匹配,重定向到Swagger UI // 注意:这应该是Configure方法中的最后一个中间件 app.Use(async (context, next) => { if (context.Request.Path == "/") { context.Response.Redirect("/swagger"); // 这里的URL应该与RoutePrefix相对应 } else { await next(); } });
控制器例子
using Microsoft.AspNetCore.Mvc; // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 namespace SwaggerDemo1.Controllers { [Route("api/[controller]")] [ApiController] public class Test2Controller : ControllerBase { // GET: api/<Test2Controller> [HttpGet] public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/<Test2Controller>/5 [HttpGet("{id}")] public string Get(int id) { return "您输入的是: " + id; } // POST api/<Test2Controller> [HttpPost] public void Post([FromBody] string value) { } // PUT api/<Test2Controller>/5 [HttpPut("{id}")] public void Put(int id, [FromBody] string value) { } // DELETE api/<Test2Controller>/5 [HttpDelete("{id}")] public void Delete(int id) { } } }
错误解决
打开faech err 查看似乎是找不到swagger.json 文件, 结果搜目录就是找不到, 这个文件是启动时自动生成的,一般也不在目录内找到. 所以问题查找应该在输出中查找原因
错误 查看运行里边的日志错误,一般来说是有控制器不符合 swagger 标准导致, 如果不想让一个不标准的控制器加入到swagger 管理可以使用下边属性特性
[ApiExplorerSettings(IgnoreApi = true)]
这意味着Swagger将不会包括这个控制器中的任何操作(方法)在自动生成的API文档中。
标签:swagger,netcore,public,api,new,Swagger,options,id,备案 From: https://www.cnblogs.com/zuochanzi/p/18534997