首页 > 编程语言 >手把手教你AspNetCore WebApi:Swagger(Api文档)

手把手教你AspNetCore WebApi:Swagger(Api文档)

时间:2023-06-05 22:08:10浏览次数:57  
标签:WebApi 小明 AspNetCore 小红 Api 文档 Swagger API

前言

小明已经实现“待办事项”的增删改查,并美滋滋向负责前端的小红介绍Api接口,小红很忙,暂时没有时间听小明介绍,希望小明能给个Api文档。对于码农小明来说能不写文档就尽量不要写,不过这也难不倒小明,他知道Swagger不仅可以自动生成Api文档,并还可以用Swagger进行接口测试。

Swagger是什么?

Swagger用于描述 REST API。 它允许计算机和人员了解服务的功能,而无需直接访问实现(源代码、网络访问、文档)。

包安装

  • 右键单击“解决方案资源管理器” > “管理 NuGet 包”中的项目
  • 将“包源”设置为“nuget.org”
  • 确保启用“包括预发行版”选项
  • 在搜索框中输入“Swashbuckle.AspNetCore”
  • 从“浏览”选项卡中选择最新的“Swashbuckle.AspNetCore”包,然后单击“安装”

添加Swagger生成器

将Swagger生成器添加到 Startup.ConfigureServices 方法中的服务集合中:

services.AddSwaggerGen();

配置Swagger中间件

在 Startup.Configure 方法中,启用中间件为生成的 JSON 文档和 Swagger UI 提供服务:

app.UseSwagger();
app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});

XML注释

  • 在“解决方案资源管理器”中右键单击该项目,然后选择“编辑<project_name>.csproj” 。
  • 手动将PropertyGroup添加:
    true

更改services.AddSwaggerGen();代码如下:

services.AddSwaggerGen((c =>
{
    var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
    var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
    c.IncludeXmlComments(xmlPath);
}));

效果

手把手教你AspNetCore WebApi:Swagger(Api文档)_xml

手把手教你AspNetCore WebApi:Swagger(Api文档)_API_02

小结

目前为止,小明终于把API文档也搞定了,摸了摸光滑的脑袋,小明美滋滋把API地址给小红发去,心想这样小红肯定很满意了吧,但对不能与小红面对面的交流接口也有一丝丝淡淡的失望。



标签:WebApi,小明,AspNetCore,小红,Api,文档,Swagger,API
From: https://blog.51cto.com/u_4018548/6419721

相关文章

  • 手把手教你AspNetCore WebApi:数据验证
    前言小明最近又遇到麻烦了,小红希望对接接口传送的数据进行验证,既然是小红要求,那小明说什么都得满足呀,这还不简单嘛。传统验证[HttpPost]publicasyncTask<ActionResult<Todo>>PostTodo(Todotodo){if(string.IsNullOrEmpty(todo.Name)){returnOk("名称不......
  • 手把手教你AspNetCore WebApi:Serilog(日志)
    前言小明目前已经把“待办事项”功能实现了,API文档也搞定了,但是马老板说过,绝对不能让没有任何监控的项目上线的。Serilog是什么?在.NET使用日志框架第一时间会想到NLog或是Log4Net,Serilog是这几年快速崛起的Log框架之一,Serilog是以Structuredlogging为基础进行设计,透过loggingAP......
  • 手把手教你AspNetCore WebApi:缓存(MemoryCache和Redis)
    前言这几天小明又有烦恼了,系统上线一段时间后,系统性能出现了问题,马老板很生气,叫小明一定要解决这个问题。性能问题一般用什么来解决呢?小明第一时间想到了缓存。什么是缓存缓存是实际工作中非常常用的一种提高性能的方法。缓存可以减少生成内容所需的工作,从而显著提高应用程序的性能......
  • 手把手教你AspNetCore WebApi:增删改查
    前言小明已经创建与运行了WebApi项目,了解项目结构有哪些组成,并学会了怎么发布到IIS。基础已经建好,从现在开始要真正实现待办事项的功能了。新建表CREATETABLE[dbo].[Todo]( [Id][uniqueidentifier]NOTNULL, [Name][nvarchar](100)NULL,CONSTRAINT[PK_Todo]PRIMARYKEY......
  • 手把手教你AspNetCore WebApi:认证与授权
    前言这几天小明又有烦恼了,之前给小红的接口没有做认证授权,直接裸奔在线上,被马老板发现后狠狠的骂了一顿,赶紧让小明把授权加上。赶紧Baidu一下,发现大家都在用JWT认证授权,这个倒是挺适合自己的。什么是TokenToken是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后......
  • 获取电商平台数据采集的方式|api接口|获取商品详情接口(可高并发)
    ​电商平台数据采集是指从电商平台获取各种商品、用户、订单等信息的过程。下面介绍几种常用的获取电商平台数据的方式:1.爬虫:通过爬虫技术可以直接从电商平台的网站上获取数据,包括商品的名称、价格、销量、评论等信息。但是,使用爬虫技术采集数据需要具备一定的技能,并且需要防止......
  • 5分钟部署 Apinto 开源网关
     Apinto 的开源网关符合我的需求,下面我将演示如何部署这样一个开源网关。Apinto功能架构图开始部署部署资源设备推荐配置设备数量部署对象4核8G,250G磁盘空间,2.5GHz1控制台程序、Mysql数据库、Redis数据库4核8G,250G磁盘空间,2.5GHz2网关节点部署架构控制台程序、mysql数据库、redis......
  • API接口获取快手商品详情(封装代码)
    快手是中国最大的短视频平台之一,也是许多电商企业进行推广的重要渠道。为了更好地了解快手的商品信息,我们可以通过API接口来获取商品详情。首先,我们需要了解快手API接口和相应的文档接下来,我们需要准备请求接口的工具。在这里,我要介绍Python语言和requests库。requests是一个很......
  • 电商平台通过API接口进行数据采集的意义
    电商平台数据采集是指通过一系列的数据收集技术和方法,从电商平台上获取各种与电商活动相关的数据,并进行组织、整合、分析和利用的过程。电商平台数据采集可以获取与以下方面相关的数据:1.商品信息:包括商品名称、描述、价格、运费、库存等数据。2.订单信息:包括订单编号、下单时间、订......
  • Kubernetes API
    KubernetesAPI(应用程序编程接口)是一组规则和协议,允许应用程序与Kubernetes集群进行交互和通信。它为开发人员提供了一种管理和控制Kubernetes环境中各种资源和组件的方式。KubernetesAPI遵循RESTful设计模式,意味着它使用诸如GET、POST、PUT和DELETE等HTTP方法来对资源执行操作......