C# WebAPI中使用Swagger

转自:https://www.cnblogs.com/peterYong/p/9569453.html

正文

  随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染、前后端分离的形态,而且前端技术和后端技术在各自的道路上越走越远。 

前端和后端的唯一联系变成了API接口;API文档变成了前后端开发人员联系的纽带,变得越来越重要,swagger就是一款让你更好的书写API文档的框架。

其他API文档工具

  没有API文档工具之前,大家都是手写API文档的,在什么地方书写的都有,有在confluence上写的,有在对应的项目目录下readme.md上写的,每个公司都有每个公司的玩法,无所谓好坏。

书写API文档的工具有很多,但是能称之为“框架”的,估计也只有swagger了。 

在此先介绍一款其他的API文档工具,叫rap,这玩意儿用一句话就能概括:解放生产力,代替手写API的web工具。 

RAP写起来确实比手写文档要快, 可以选择某个项目,写针对某个项目的API 

RAP是由阿里开发的,整个阿里都在用,还不错。github地址为:https://github.com/thx/RAP 
当然咯,rap不可能只有线上版本,肯定可以部署到私服上。 
https://github.com/thx/RAP/wiki/deploy_manual_cn

swagger

rap挺好的,但是和swagger比起来有点轻量。 
先看看swagger的生态使用图:

 

其中,红颜色的是swaggger官网方推荐的。

下面再细看看swagger的生态的具体内容:

swagger-ui

这玩意儿从名字就能看出来,用来显示API文档的。和rap不同的是,它不可以编辑。

swagger-editor

就是一个在线编辑文档说明文件(swagger.json或swagger.yaml文件)的工具,以方便生态中的其他小工具(swagger-ui)等使用。 
左边编辑,右边立马就显示出编辑内容来。

编辑swagger说明文件使用的是yaml语法具体的内容可以去官网查看。

各种语言版本的根据annotation或者注释生成swagger说明文档的工具

目前最流行的做法,就是在代码注释中写上swagger相关的注释,然后,利用小工具生成swagger.json或者swagger.yaml文件。

目前官方没有推出。github上各种语言各种框架各种有,可以自己搜吧搜吧,这里只说一个php相关的。 
swagger-php :https://github.com/zircote/swagger-php

swagger-validator

这个小工具是用来校验生成的文档说明文件是否符合语法规定的。用法非常简单,只需url地址栏,根路径下加上一个参数url,参数内容是放swagger说明文件的地址。即可校验。 

docker hub地址为:https://hub.docker.com/r/swaggerapi/swagger-validator/ 
可以pull下镜像来自己玩玩。

swagger-codegen

代码生成器,脚手架。可以根据swagger.json或者swagger.yml文件生成指定的计算机语言指定框架的代码。 
有一定用处,Java系用的挺多。工业上应该不咋用。

mock server

这个目前还没有找到很合适的mock工具,包括rap也好,其他API文档工具也好,都做的不够完善,大多就是根据说明文件,例如swagger.json等生成一些死的静态的mock数据,不能够根据限定条件:例如“只能是数字,必传”等做出合理的回应。

C# 在webapi项目中配置Swagger

1、安装包 Swashbuckle

    会自动生成 SwaggerConfig.cs文件

2、右键项目属性—>生成—>勾选XML文档文件

  eg  bin\WebApi.xml    【若对api写了注释,并在swagger中 开启了,则会自动生成一些说明节点】

3、运行  eg:http://localhost:2146/swagger

4、发现,安装完成后,写注释并没有在swagger页面上面增加,所以我们现在开启注释

在SwaggerConfig类中,EnableSwagger的时候添加下面XML解析(默认是有的,只是注释掉了)

c.IncludeXmlComments(GetXmlCommentsPath());

并添加方法 即可

复制代码
/// <summary>
        ///  添加XML解析
        /// </summary>
        /// <returns></returns>
        private static string GetXmlCommentsPath()
        {
            return string.Format("{0}/bin/WebApi.XML", System.AppDomain.CurrentDomain.BaseDirectory);
        }
复制代码

xml文档中也会自动写入注释

5、调试

 注意参数是字符串时需要带双引号"",、

 

更多参考:

https://www.cnblogs.com/lhbshg/p/8711604.html

转载于:https://www.cnblogs.com/zhoufangcheng04050227/p/10572158.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# Web服务是使用C#编程语言开发的一种用于构建和提供Web应用程序的技术。它可以用于创建各种类型的Web服务,包括RESTful API、SOAP服务等。而Swagger是一种用于描述、构建、测试和文档化Web服务的工具。 C# Web服务的优点包括: 1. 强大的生态系统:C#拥有庞大的开发社区和丰富的第三方库,可以轻松地集成其他功能和服务。 2. 高性能:C#是一种编译型语言,可以生成高效的机器码,提供出色的性能。 3. 安全性:C#提供了多种安全机制,如身份验证、授权等,可以保护Web服务的安全性。 4. 跨平台支持:通过.NET Core,C# Web服务可以在多个平台上运行,包括Windows、Linux和macOS。 Swagger的优点包括: 1. 自动生成文档:Swagger可以根据代码注释自动生成API文档,减少了手动编写文档的工作量。 2. 可视化界面:Swagger提供了一个可视化界面,可以方便地测试和调试API接口。 3. 客户端代码生成:Swagger可以根据API定义生成客户端代码,简化了客户端与服务端的交互过程。 4. 支持多种编程语言:Swagger支持多种编程语言,包括C#、Java、Python等,可以方便地与不同语言的开发者进行协作。 C# Web服务和Swagger的缺点包括: 1. 学习曲线:C#Swagger都需要一定的学习成本,特别是对于初学者来说。 2. 复杂性:C# Web服务和Swagger在处理复杂业务逻辑时可能会变得复杂,需要合理的设计和架构。 3. 依赖性:C# Web服务和Swagger可能依赖于其他第三方库和工具,需要管理好这些依赖关系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值