通过Swashbukle给DotNet Core Web API 增加自动文档功能

  DotNet Core Web API给开发者提供了一个很好的框架来开发Restful的API。那么这些API接口该如何管理起来呢?Swagger是一个很好的选择,Swagger不需要开发者额外去维护接口文档,只要开发者的接口遵循Restful的规范,Swagger就会根据API接口生成文档。

  对于前后端分离的开发模式,前后端开发者一般会先定义好接口,然后各自独立开发,后端开发者可以使用Swagger很快的生成没有业务逻辑的接口文档,接口返回的是Mock Data,这样前端开发人员就可以更早的开始调用接口,只要关注Swagger的接口文档是否有发生变化,尽早的发现错误,避免了前后端最后集成时,出现大问题。

  后端开发者使用Swagger也可以很好的调试,Swagger提供了一个简单的UI界面,可以模拟简单的post,get,put 。功能没有curl或者postman强大,但是优势在于简单快捷,只要在swagger文档界面点点就可以。

  这里要介绍的就是:Dotnet Core 2.0 下面的 Swashbukle.AspNetCore

  Github地址: https://github.com/domaindrivendev/Swashbuckle.AspNetCore

  这篇文章的源码:dotnet-core-sample的 sample1中

  

  1.首先创建一个dotnet core web api 项目,通过命令行输入

dotnet new webapi -name sample1

   2. 然后下载Swashbuckle AspNetCore

dotnet add package Swashbuckle.AspNetCore

  在VS 2017下面,通过 工具 -> Nuget 包管理器 -> 程序包管理控制台, 运行

Install-Package Swashbuckle.AspNetCore

注意:这里运行的是Install-Package Swashbuckle.AspNetCore 不是Install-Package Swashbuckle

  3.在Startup.cs文件中,引入Swashbuckle

using Swashbuckle.AspNetCore.Swagger;

  

  4.在Startup.cs文件中的ConfigureService方法中注册Swagger Generator

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
            services.AddSwaggerGen(config =>

            {
                config.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
            });
        }

  5. 在Configure方法中添加Swagger的中间件

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();

            }
            app.UseMvc();

            app.UseSwagger();
        }

  6. 最后执行一下dotnet run或者F5,就可以直接运行项目了

dotnet run

默认情况下,可以通过http://localhost:5000/swagger/ 访问API接口文档

注意:要自动生成文档,对应Controller下的接口必须显示的指定用那种Http请求方式,POST,GET,PUT,DELETE

Swagger运行起来后,有时候需要针对项目进行一些简单的配置:

除了前面提到的 new Info { Title = "My API", Version = "v1" },Swashbukle还可以配置其他信息,具体可以参见OpenAPI Specification.

config.SwaggerDoc("v1",
    new Info
    {
        Title = "My API - V1",
        Version = "v1",
        Description = "A sample API to demo Swashbuckle",
        TermsOfService = "Knock yourself out",
        Contact = new Contact
        {
            Name = "Joe Developer",
            Email = "[email protected]"
        },
        License = new License
        {
            Name = "Apache 2.0",
            Url = "http://www.apache.org/licenses/LICENSE-2.0.html"
        }
    }
)

最后,如果要配置多个swagger文档,需要通知添加swagger generator和endpoint

config.SwaggerDoc("v2", new Info { Title = "My API - V2", Version = "v2" });

config.SwaggerEndpoint("/swagger/v2/swagger.json", "My API V2");
时间: 2024-10-03 23:10:28

通过Swashbukle给DotNet Core Web API 增加自动文档功能的相关文章

asp.net core web api 生成 swagger 文档

asp.net core web api 生成 swagger 文档 Intro 在前后端分离的开发模式下,文档就显得比较重要,哪个接口要传哪些参数,如果一两个接口还好,口头上直接沟通好就可以了,如果接口多了就有点不适用了,没有接口文档会大大提高前后端的沟通成本.而 asp.net core 可以通过 Swashbuckle.AspNetCore 很方便的集成 swagger 文档,相比之前 nodejs(express) 和 swagger 集成就很麻烦了,大概这就是强类型语言的优势吧.C#

linux上用vscode写dotnet core web api

dotnet core 跨平台已不再是梦,它带来的意义非凡,比如api接口可以在linux上编写及部署,也可以在windows上编写好,打包发布,然后copy到linux上部署.  安装 Ubuntu                 从官网下载最新版本,如上图,然后装到虚拟机VMware中.如果是centeros,系统开启后,默认进入命令行模式,估计一部分同学,看到类似dos界面,有点恐慌,不急,在命令行中输入startx回车,进入到图形界面.无论是哪种系统,虚拟机上装的操作系统,在开机启动后,

使用swagger实现web api在线接口文档

一.前言 通常我们的项目会包含许多对外的接口,这些接口都需要文档化,标准的接口描述文档需要描述接口的地址.参数.返回值.备注等等:像我们以前的做法是写在word/excel,通常是按模块划分,例如一个模块包含n个接口,就形成一个文档,然后再用版本控制管理.这样做的缺点是: 1.不够直观,每次打开文档查看接口很麻烦 2.文档的维护难度大 3.调用方和测试人员使用麻烦,需要先去找接口,在用相应的工具测试(例如使用浏览器还可能要安装插件) 我们希望是可以直接在线浏览,然后直接用浏览器测试.而接口的详细

1.1 WEB API 在帮助文档页面进行测试

这篇文章http://www.cnblogs.com/landeanfen/p/5210356.html写得比较详细, 我就挑简单的来说. 首先用这功能要在WEB API创建的帮助文档下面,如果你使用了web helper另外建的帮助文档,注意引用页面脚本跟样式,否则可能达不到你想要的效果. 使用NuGet,搜索WebApiTestClient,安装. 安装完成后,在 Areas\HelpPage\Views\Help) Api.cshtml 后面添加这个就可以了. @Html.DisplayF

使用Swagger来生成asp.net core Web API 文档

对于构建一个消费应用程序,理解API的各个方法对开发这是一个不小的挑战.为了使你的API更利于阅读.使用Swagger为你的Web API生成好的文档和帮助页,.NET Core实现了Swashbuckle.AspNetCore,使用Swagger是非常简单的,只需添加一组Nuget包和修改Startup就可以搞定. .Swashbuckle.AspNetCore 开源项目, ASP.NET Core Web API生成Swagger文档的 .Swagger是一个机器可读的restful风格的a

Gitlab CI 自动部署 asp.net core web api 到Docker容器

为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成.监控报警.以及扩容和高可用性的问题.是学习和探索的过程分享给大家,也欢迎同行的人交流. 先来一个三步曲,我们将完成通过GitLab CI 自动部署 net core web api 到Docker 容器的一个示例.这是第一步,通过此文您将了解如何将net core web api 运行在Docker

在ASP.NET Core Web API中为RESTful服务增加对HAL的支持

HAL(Hypertext Application Language,超文本应用语言)是一种RESTful API的数据格式风格,为RESTful API的设计提供了接口规范,同时也降低了客户端与服务端接口的耦合度.很多当今流行的RESTful API开发框架,包括Spring REST,也都默认支持HAL规范,当RESTful API被调用后,服务端就会返回ContentType为application/hal+json的JSON内容,例如: { "_links": { "

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

ASP.NET Core Web API 开发-RESTful API实现

REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representational State Transfer,简称REST)是Roy Thomas Fielding博士于2000年在他的博士论文 "Architectural Styles and the Design of Network-based Software Architectures" 中提出来的一种万维网软件架构风格. 目前在三种主流的Web服务实现方案中,因为R