.NetCore3 Api使用Swagger生成api文档
2021/9/11 6:06:18
本文主要是介绍.NetCore3 Api使用Swagger生成api文档,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Api开完成之后写文档是让人很痛苦的事儿,但文档又必须写。而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者的心情。幸好有一种快速有效的方法来构建api说明文档, Swagger就是最受欢迎的REST APIs文档生成工具之一!
Swagger是最流行的API开发工具,它遵循了OpenAPI规范,可以根据API接口自动生成在线文档,这样就可以解决文档更新不及时的问题。它可以贯穿于整个API生态,比如API的设计、编写API文档等。而且Swagger还是一种通用的、与具体编程语言无关的API描述规范。
有关更多Swagger的介绍,可以参考Swagger官网,官网地址:https://swagger.io/
Swashbuckle的组成部分
- Swashbuckle.AspNetCore.Swagger:将 SwaggerDocument 对象公开为 JSON 终结点的 Swagger 对象模型和中间件。
- Swashbuckle.AspNetCore.SwaggerGen:从路由、控制器和模型直接生成 SwaggerDocument 对象的 Swagger 生成器。 它通常与 Swagger 终结点中间件结合,以自动公开 Swagger JSON。
- Swashbuckle.AspNetCore.SwaggerUI:Swagger UI 工具的嵌入式版本。 它解释 Swagger JSON 以构建描述 Web API 功能的可自定义的丰富体验。 它包括针对公共方法的内置测试工具。
安装Swashbuckle
直接在NuGet里面搜索Swashbuckle.AspNetCore包进行安装
或命令行:dotnet add package Swashbuckle.AspNetCore
添加并配置 Swagger 中间件
引入命名空间:
using Swashbuckle.AspNetCore.Swagger;
在Startup.ConfigureServices 方法中,把SwaggerGen添加到服务集合中:
services.AddSwaggerGen(options => { // 避免出现错误: Can't use schemaId "$xxx" for type. The same schemaId is already used for type options.CustomSchemaIds(type => type.FullName); const string ApiVersion = "V1"; const string ApiName = "Xxxx"; options.SwaggerDoc(ApiVersion, new OpenApiInfo() { Version = ApiVersion, Title = $"{ApiName} 接口文档" }); // 使用反射获取xml文件。并构造出文件的路径 var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); // 启用xml注释. 该方法第二个参数启用控制器的注释,默认为false. options.IncludeXmlComments(xmlPath, true); });
在 Startup.Configure
方法中,启用中间件为生成的 JSON 文档和 Swagger UI 提供服务:
app.UseSwagger(); app.UseSwaggerUI(options => { options.SwaggerEndpoint($"/swagger/{Consts.ApiVersion}/swagger.json", $"{Consts.ApiName} {Consts.ApiVersion}"); // 默认访问路径:http://localhost:xxxx/swagger/index.html // 访问地址: http://localhost:xxxx/doc/index.html options.RoutePrefix = "doc"; });
最终效果
这篇关于.NetCore3 Api使用Swagger生成api文档的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID