Core Web API上使用Swagger提供API文档

在ASP.NET Core Web API上使用Swagger提供API文档

我在开发自己的博客系统(http://daxnet.me)时,给自己的RESTful服务增加了基于Swagger的API文档功能。当设置IISExpress的默认启动路由到Swagger的API文档页面后,在IISExpress启动Web API站点后,会自动重定向到API文档页面,非常方便。这不仅让我能够快速省查API设计的合理性,同时从API的使用角度也为我自己提供了便捷。下图就是我的博客系统RESTful API的Swagger文档界面:

接下来,让我们一起看一下如何在ASP.NET Core Web API上实现这一基于Swagger的API文档页面。

实现步骤

创建ASP.NET Web API应用程序

这部分内容就不多说了,方法有很多,可以在安装了Visual Studio 2015/2017 Tools for .NET Core后,使用Visual Studio 2015或者2017直接创建ASP.NET Core的应用程序,也可以使用.NET Core SDK的dotnet new –t web命令在当前文件夹下新建Web项目。本文的演示将基于Visual Studio 2015进行介绍。

添加对Swashbuckle.SwaggerUi和Swashbuckle.SwaggerGen库的引用

  1. 在Web API项目上单击鼠标右键,选择Manage NuGet Packages: 
  2. 在Visual Studio 2015 NuGet标签页中,在Browse(浏览)tab下,输入Swashbuckle.SwaggerUi,注意记得勾选“Include prerelease”选项: 
  3. 安装上图中选中的包到项目中
  4. 用上述同样的方式安装Swashbuckle.SwaggerGen包到项目中

注意:目前两个包都还是处于beta的版本,所以需要勾选Include prerelease的选项。

打开XML文档功能

  1. 在Web API项目上点击鼠标右键,选择Properties(属性)选项: 
  2. 在项目属性标签页中,切换到Build页面,同时打开XML documentation file选项: 
  3. 此时会生成Web API项目代码的XML文档。于是,编译你的项目时会产生一系列的警告信息,因为你暂时还未完成代码的文档注释

修改Startup.cs文件

  1. 双击打开Startup.cs文件
  2. 在ConfigureServices方法中,加入以下代码,以增加对Swagger的支持: 

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    public void ConfigureServices(IServiceCollection services)

    {

        // Add framework services.

        services.AddMvc();

        services.AddSwaggerGen();

        services.ConfigureSwaggerGen(options =>

        {

            options.SingleApiVersion(new Swashbuckle.Swagger.Model.Info

            {

                Version = "v1",

                Title = "My Web Application",

                Description = "RESTful API for My Web Application",

                TermsOfService = "None"

            });

            options.IncludeXmlComments(Path.Combine(PlatformServices.Default.Application.ApplicationBasePath,

                "WebApplication14.XML")); // 注意:此处替换成所生成的XML documentation的文件名。

            options.DescribeAllEnumsAsStrings();

        });

    }

  3. 在Configure方法中,加入以下代码: 

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)

    {

        loggerFactory.AddConsole(Configuration.GetSection("Logging"));

        loggerFactory.AddDebug();

        app.UseSwagger();

        app.UseSwaggerUi();

        app.UseMvc();

    }

修改Web API项目首页重定向

  1. 在项目上展开Properties节点,双击launchSettings.json文件 
  2. 根据需要,修改不同profile下的launchUrl的值,比如在本案例中,修改IIS Express节点下的launchUrl,将其改为下图中的值: 
  3. 测试一下,在Visual Studio中,将Web API项目设置成启动项,然后直接Ctrl+F5启动项目,你将看到以下画面: 
  4. 在项目中增加一些注释试试看?打开ValuesController.cs文件,增加一些注释: 
  5. 再次运行站点,发现这些文档注释都体现在API页面中了: 
  6. 我们还可以直接在API文档页面中进行API的调用测试: 

总结

本文以Walkthrough的方式介绍了如何在ASP.NET Core Web API中增加Swagger API文档页面的功能,Swagger是一个非常棒的RESTful API设计、生成、文档化以及规范化工具,它基于YAML语言,并在官方提供了YAML语言的编辑器。开发人员可以通过各种编辑器,用YAML定义RESTful API的接口契约,同时还可以生成几十种编程语言的RESTful服务端和客户端代码(在上面的截图中,大家有没有留意到绿色背景标题栏中的swagger.json文件URL?下载这个文件,然后到官网的编辑器中导入后,即可立刻根据自己的开发语言,下载包含有我们的RESTful API实现的服务端框架和客户端调用代码)。这有点像SOAP Web Services时代的WSDL(Web Service描述语言)以及wsdl.exe、svcutil.exe等工具。除了Swagger,RAML也是一种同类产品,有兴趣的朋友可以去它们各自的官网了解一下。

分类: .NET Core

时间: 2024-12-18 21:17:50

Core Web API上使用Swagger提供API文档的相关文章

用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档

博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档.

ASP.NET WebAPI使用Swagger生成测试文档

ASP.NET WebAPI使用Swagger生成测试文档 SwaggerUI是一个简单的Restful API测试和文档工具.简单.漂亮.易用(官方demo).通过读取JSON配置显示API .项目本身仅仅也只依赖一些html,css,js静态文件.你可以几乎放在任何Web容器上使用 捣鼓了好久最终效果如下 1.API控制器和action描述 2.测试接口 使用swagger 1.创建webapi项目解决方案 2.引用swagger nuget包 swashbuckle和swagger.NET

PCB DotNetCore Swagger生成WebAPI文档配置方法

在.net framework框架下可以使用WebApiTestClientWebApi生成WebAPI接口文档与方便接口测试用,而在DotnetCore却没有找到这个工具了,baidu查找一下发现有一个相类似的工具,它就是Swagger,和使用WebApiTestClientWebApi差不多的,这里Swagger配置过程整理如下:   一.下载Swashbuckle.AspNetCore NuGet下载安装Swashbuckle.AspNetCore   二.Startup.cs代码修改 1

server2016下搭建web服务器&三种虚拟主机实验文档

安装web服务器 首先打开server2016的服务器管理器,点击添加角色和功能如图所示: 开始之前默认下一步如图所示: 安装类型默认下一步选择基于角色或基于功能的安装如图所示: 服务器选择默认下一步如图所示: 服务器角色选择web服务器(IIS)如图所示: 功能选项一般默认即可哦如图所示: 确认下无误后点击安装如图所示: 安装完成点击关闭如图所示: 以上web服务器安装完成我们在Windows管理工具里打开如图所示: 点击打开后点到网站会有一个站点在这里我们可以进行操作更改,点击这里的web网

[转载]linux上用PHP读取WORD文档

在linux上用PHP读取WORD文档,其实是使用了 antiword程序把word文档转化为txt文档. 再使用php执行系统命令调用而已. 具体操作如下: 1.安装antiword 官方站:http://www.winfield.demon.nl/ 下载地:http://www.winfield.demon.nl/linux/antiword-0.37.tar.gz 下载完,解压,进入目录 使用命令 make && make install 即可完成安装. 安装时,自动安装到了/roo

ASP.NET Web API根据代码注释生成Help文档

使用Visual Studio新建一个ASP.NET Web API项目,直接运行,查看Help文档可以看到如下的API帮助说明 如何在Description中显示描述. 1. 打开Controllers=>ValuesController,为每个API增加注释(Summary) public class ValuesController : ApiController { /// <summary> /// GET api/values /// </summary> ///

asp.net core使用Swashbuckle.AspNetCore(swagger)生成接口文档

asp.net core中使用Swashbuckle.AspNetCore生成接口文档 Swashbuckle.AspNetCore:swagger的asp.net core实现,本文使用版本为v1.1.0项目地址:https://github.com/domaindrivendev/Swashbuckle.AspNetCore仔细看了下readme,发现在百度找半天的东西其实readme里面就有... 开局一张图,然后开始编,一些基本的asp.net core东西就不再赘述,本文只对Swash

Asp.net Core WebApi 使用Swagger做帮助文档,并且自定义Swagger的UI

WebApi写好之后,在线帮助文档以及能够在线调试的工具是专业化的表现,而Swagger毫无疑问是做Docs的最佳工具,自动生成每个Controller的接口说明,自动将参数解析成json,并且能够在线调试. 那么要讲Swagger应用到Asp.net Core中需要哪些步骤,填多少坑呢? 安装Swagger到项目 { "dependencies": { "Swashbuckle": "6.0.0-beta902", ........ 或者直接通

REST API (创建索引,检索文档)

下面简单介绍下elasticsearch提供的一套api的用法:. 1. 创建索引 PUT 下面创建了索引jiu3,里面配置信息重写,否则默认5个分片和一个副本,映射里写了一个type:lvh,以及两个字段.当然,大括号里这些并不是必需的. 1 curl -XPUT http://192.168.100.15:9200/jiu3/ -d '{ 2 "settings":{ 3 "index":{ 4 "number_of_shards":1, 5