NSwagStudio for Swagger Api
本案例主要说明如何使用NSwag 工具使用桌面工具快速生成c# 客户端代码、快速的访问Web Api。
NSwagStudio 下载地址 比较强大、可以生成TypeScript、WebApi Controller、CSharp Client
1、运行WebApi项目 URL http://yourserver/swagger 然后你将看到界面如下
1.1 Web API 代码
该代码使用的是Abp框架、如果不了解Abp框架的请到官网 http://www.aspnetboilerplate.com/ 了解
- 实休代码
public class UserInformation : Entity<int>, IHasCreationTime, IHasModificationTime{[StringLength(20)]public string UserName { get; set; }public int UserAge { get; set; }[StringLength(20)]public string UserAddress { get; set; }public UserInformation(){CreationTime = Clock.Now;}public DateTime CreationTime { get; set; }public DateTime? LastModificationTime { get; set; }}
实体代码
- Application 应用
[AutoMapTo(typeof(UserInformation))]public class CreateUserInformationDto : IHasCreationTime{public string UserName { get; set; }public int UserAge { get; set; }public string UserAddress { get; set; }public DateTime CreationTime { get; set; }public CreateUserInformationDto(){CreationTime = Clock.Now;}}public class DeleteUserInformationDto : IEntityDto{public int Id { get; set; }}public class GetAllUserInformationDto : PagedAndSortedResultRequestDto, ICustomValidate{public string UserName { get; set; }public void AddValidationErrors(CustomValidationContext context){if (string.IsNullOrEmpty(UserName)){context.Results.Add(new ValidationResult("用户名称关键字不能为空!"));}}}public class GetInputUserInformatinDto : IEntityDto{public int Id { get; set; }}[AutoMapTo(typeof(UserInformation))]public class UpdateUserInformationDto : CreateUserInformationDto, IEntityDto, IHasModificationTime{public UpdateUserInformationDto(){LastModificationTime = Clock.Now;}public DateTime? LastModificationTime { get; set; }public int Id { get; set; }}public class UserInformationDto : EntityDto, IHasCreationTime, IHasModificationTime{public string UserName { get; set; }public int UserAge { get; set; }public string UserAddress { get; set; }public UserInformationDto(){CreationTime = Clock.Now;}public DateTime CreationTime { get; set; }public DateTime? LastModificationTime { get; set; }}
Dtos
public interface IUserAppService :ICrudAppService<UserInformationDto, int,GetAllUserInformationDto,CreateUserInformationDto,UpdateUserInformationDto,GetInputUserInformatinDto,DeleteUserInformationDto>{}public class UserAppService :CrudAppService<UserInformation,UserInformationDto, int,GetAllUserInformationDto,CreateUserInformationDto,UpdateUserInformationDto,GetInputUserInformatinDto,DeleteUserInformationDto>,IUserAppService{private ICacheManager cacheManager;public UserAppService(IRepository<UserInformation, int> repository,ICacheManager cache) : base(repository){cacheManager = cache;}protected override IQueryable<UserInformation> CreateFilteredQuery(GetAllUserInformationDto input){return base.CreateFilteredQuery(input).Where(o=>o.UserName.Contains(input.UserName));}}
Application Service
2、生成客户端代码 并且访问Web API
2.1 安装工具和创建测试客户端项目
- 安装Install NSwagStudio
- 创建一个新的c#客户端项目
- 将所需的程序集依赖项添加到库项目中
2.2 生成代码
- 启动 NSwagStudio 然后选择 Swagger Specification
- 在Load Swagger Specification from URL:
http://yourserver/swagger/v1/swagger.json 前期条件是服务必须期启动
- 选择一个右边的选项卡 如:"CSharpClient"、然后点击“ Generate Outputs”
- 复制生所的代码到你的客户端项目中
- 同时也可以设置、如项目命名空间、以及配置输出文件路经、生成DTO的一些配置
3、保存脚本
- 保存文件.nswag 把当前的一些配置保存
4、 客户端代码实现
2 UserClient app = new UserClient();3 var data = app.GetAllAsync(new GetAllUserInformationDto()4 {5 MaxResultCount = 1,6 SkipCount = 1,7 Sorting = "desc",8 UserName = "luyong"9 }); 10 11 //新增数据 12 var app2= app.CreateAsync(new CreateUserInformationDto() 13 { 14 CreationTime = DateTime.Now, 15 UserAddress = "china", 16 UserName = "fadf333", 17 UserAge = 10 18 }); 19 20 dataGridView1.DataSource = data.Result.Items;
转载于:https://www.cnblogs.com/w2011/p/5979708.html
NSwagStudio for Swagger Api相关推荐
- 怎么将swagger API导出为HTML或者PDF
文章目录 将swagger API导出为HTML或者PDF 什么是Asciidoc swagger2markup-maven-plugin asciidoctor-maven-plugin 使用命令行 ...
- 集成Swagger(API)---SpringBoot
集成Swagger(API) 学习目标: 了解Swagger的概念及作用 掌握在项目中集成Swagger自动生成API文档 Swagger简介 前后端分离 前端 -> 前端控制层.视图层 后端 ...
- swagger api文档_带有Swagger的Spring Rest API –创建文档
swagger api文档 使REST API易于使用的真正关键是好的文档. 但是,即使您的文档做得很好,您也需要设置公司流程的权利以正确,及时地发布它. 确保利益相关者按时收到是一回事,但是您也要负 ...
- swagger api文档_带有Swagger的Spring Rest API –公开文档
swagger api文档 创建API文档后,将其提供给涉众很重要. 在理想情况下,此发布的文档将足够灵活以解决任何最后的更改,并且易于分发(就成本以及完成此操作所需的时间而言). 为了使之成为可能, ...
- swagger 扫描java文档_推荐一款在运行时通过javadoc生成Swagger API文档的库
介绍 一般,我们使用Springfox生成swagger api文档,但Springfox不支持从javadoc中生成,只能通过注解的方式标注文档. 这样,当共享一些POJO类时,为了同时生成java ...
- Swagger(Api接口管理)
Swagger(Api管理) 主要应用于前后端分离的项目,实时更新最新API,降低集成风险. RestFul Api文档在线自动生成工具=>Api文档与Api定义同步更新 直接运行,可以在线测试 ...
- Oh my God, Swagger API文档竟然可以这样写?
最好的总会在不经意间出现. " 作为后端程序员,免不了与前端同事对接API, 一个书写良好的API设计文档可有效提高与前端对接的效率. 为避免联调时来回撕逼,今天我们聊一聊正确编写Swaag ...
- binder-swagger-java v0.5.0,Swagger API 框架
Binder-swagger-java v0.5.0 发布了,这一版的主要更新有: 增加 ref 支持增加 重用 支持更多的助手方法 注:保持了向前兼容,现有应用代码不受影响. 只要提供合适的 swa ...
- 使用swagger api 下载excel,excel打不开
需求 今天有个常规的需求,先上传一个文件,然后解析文件填充些属性在下载下来,但是最后使用swagger测试的时候,发现下载的文件打开失败,说文件格式不匹配或者文件内容损坏. 通过搜索发现需要在api上 ...
最新文章
- SpringBoot整合JDBC、整合Druid数据源详解教程
- git添加user及repository
- JFrame中使用jpanel来布局
- linux忆连软件,linux安装软件方法汇总
- 支付宝2017年个人账单明天发布,你小心脏准备好了吗?
- 字符,字符串,int之间互相转换
- 做形态学方法的团队_图像分割实战-分水岭分割方法和GrabCut 算法
- window.open 与 iframe
- 2011-10-18 22:20 mysql 中IFNULL 、IF、CASE 语句介绍
- 2010年 我的齐鲁软件大赛作品
- ACL'22 | 使用对比学习增强多标签文本分类中的k近邻机制
- 在 Mac 上的 Keynote 讲演中如何更改共享演示文稿的设置?
- 值得投入精力的APP运营:用户、活动和数据!
- 智能配电房综合环境监控系统
- 【7gyy】教大家设置一个类似手机的锁屏界面
- 什么是对称加密(对称加密简介)
- 计算机辅助英语教学 研究背景,信息时代背景下的英语教学(原稿)
- matlab plot函数画线,线型和颜色
- HDU1042 N!
- cf768G The Winds of Winter 主席树
热门文章
- ionic中的后退方法
- Javascript获取页面、屏幕尺寸大小参数
- 替换WCF默认序列化方式
- C# 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- 模型数据的保存和读取
- python注入_python的常见命令注入威胁
- 后端如何发出请求_gRPC系列(三) 如何借助HTTP2实现传输
- python棋盘放米循环结构_Python递归法计算棋盘上所有路径总奖品最大值(京东2016编程题)...
- ce变速注入dll失败_[LAB]一种无痕Dll模块注入方式
- 搜狗手机输入法php,在线调用搜狗云输入法