葡京网页登录 > IT系统 > 调用第三方dll,上传数据

调用第三方dll,上传数据
2020-01-25 07:11

新普京娱乐网址 1

  此次和大家狼吞虎咽的是java方面包车型地铁springmvc来营造的webapi接口+swagger文书档案;上篇文章分享.net的webapi用swagger来创设文书档案,因为有意中人问了为什么.net有docpage文书档案你还用swagger,这里最首要目标是让接口文书档案统风流倜傥,当操作多种支出语言做接口时,固然有联合风格的api文书档案是否很精确;还应该有就springcloude来说,微服务要是有不胜枚举的话,使用swagger自动依照服务serverid来加载api文书档案是很便利的。swagger设置比较简单,为了以后寻找资料和使用方便故此记录下

一、前言

自从此前写了生龙活虎篇《Webapi文书档案描述-swagger优化》那篇小说后,欠了大户人家大器晚成篇使用文书档案的表达,将来给咱们补上哈。

内需上传健康证到任何市廛的系统查阅了接口文书档案,其余都是正规,但始终卡在上传XML文件,总提醒校验战败。依据接口文书档案,也分析不出难点出现在哪,求援助!!!因为文件内容有个别多,将来上传到百度云盘链接:

  • 希图专门的学业
  • 火速创设api文书档案
  • 常用的内幕

调用第三方dll,上传数据。二、环境

  • .Net Framework 4.5
  • WebApi 2
  • SwashbuckleEx 1.1.2:个人修改后的版本
  1. 过滤私下认可错误api
  2. 增添授权token列
  3. 增多上传文件列

三、SwashbuclkeEx 优化表明

  • 汉化:支持中、英文。
  • 接口搜索:模块名、注释名、接口名
  • 注明:调节器备注、开垦进程表明、开采职员注释
  • 区域文书档案分组:支持三种文书档案切换、并分组彰显在左手,可通过点击进行切换文档
  • 接口数量总括

来得如下:
新普京娱乐网址 2
新普京娱乐网址 3
新普京娱乐网址 4

有备无患职业

  首要推荐供给多个springmvc项目,这里笔者用的是springboot+maven来飞速创设, 要使用swagger只须求在maven中加上依赖包就能够:

 1 <dependency>
 2     <groupId>io.springfox</groupId>
 3     <artifactId>springfox-swagger2</artifactId>
 4     <version>2.6.1</version>
 5 </dependency>
 6 <dependency>
 7     <groupId>io.springfox</groupId>
 8     <artifactId>springfox-swagger-ui</artifactId>
 9     <version>2.6.1</version>
10 </dependency>

  然后创制三个UserController,然后再定义个Login的Action,定义乞求和响应实体,由于api接口须要对恳求和响应属性列做 文字描述,况且上边我们在档案的次序中加了swagger包,由此以直接在实业和Action使用天性来扩充具体文字描述:

 1 @RestController
 2 @Api(tags = "会员接口")
 3 public class UserController {
 4 
 5     @PostMapping("/login")
 6     @ApiOperation(value = "登录")
 7     public LoginRp login(@RequestBody LoginRq rq) {
 8         LoginRp rp = new LoginRp();
 9 
10         if (rq.getUserName().isEmpty() || rq.getUserPwd().isEmpty()) {
11             rp.setCode(EmApiCode.登录账号或密码不能为空.getVal());
12             return rp;
13         }
14 
15         if (rq.getUserName().equals("shenniu001") && rq.getUserPwd().equals("123")) {
16             rp.setCode(EmApiCode.成功.getVal());
17 
18             rp.setToken(UUID.randomUUID().toString());
19         } else {
20             rp.setCode(EmApiCode.失败.getVal());
21         }
22         return rp;
23     }
24 
25 }

  央浼和响应实体类:

新普京娱乐网址 5新普京娱乐网址 6

 1 @ApiModel
 2 public class LoginRq implements Serializable{
 3 
 4     private static final long serialVersionUID = -158328750073317876L;
 5 
 6     @ApiModelProperty(value = "登录账号")
 7     private String userName;
 8 
 9     @ApiModelProperty(value = "登录密码")
10     private String userPwd;
11 
12 }
13 
14 @ApiModel
15 public class LoginRp extends BaseRp implements Serializable {
16     private static final long serialVersionUID = -1486838360296425228L;
17 
18     @ApiModelProperty(value = "授权token")
19     private String token;
20 
21     public String getToken() {
22         return token;
23     }
24 
25     public void setToken(String token) {
26         this.token = token;
27     }
28 }

View Code

  注明简单表明:

  @Api:同风华正茂类接口的总描述,日常用来Controller标志

新普京娱乐网址,  @ApiOperation(value = "登陆"卡塔尔:在Action上标志,描述那几个Action接口具体怎么

  @ApiModel:央浼响应实体类class上的标记

  @ApiModelProperty(value = "登陆账号"State of Qatar:伏乞响应属性上的暗号,用来描述该属性具体表明

三、SwashbuckleEx 使用文书档案

急速营造api文书档案

  希图做完后要变换文书档案,还索要自定义多个封装类,如下Swagger2类:

 1 @Configuration
 2 @EnableSwagger2
 3 public class Swagger2 {
 4 
 5     @Bean
 6     public Docket createRestApi() {
 7 
 8         return new Docket(DocumentationType.SWAGGER_2)
 9                 .select()
10                 //过滤默认错误api
11                 .paths(Predicates.not(PathSelectors.regex("/error.*")))
12                 .build()
13                 .apiInfo(apiInfo());
14     }
15 
16     //常用的细节
17     //过滤指定的action
18     //添加授权token列
19     //添加上传文件列
20     private ApiInfo apiInfo() {
21         return new ApiInfoBuilder()
22                 .title("开车接口文档")
23                 .description("该文档只允许我使用")
24                 //版本
25                 .version("0.0.0.1")
26                 .contact("作者:841202396@qq.com")
27                 .build();
28     }
29 }

  那一个类主要开始化一些大局文书档案的评释和本子并且构架api文书档案;下面是浮动文书档案,不过现实文书档案数据源用从swagger的SwaggerResourcesProvider中来,因而自定义的DocumentationConfig类完毕SwaggerResourcesProvider接口,如下:

 1 @Component
 2 @Primary
 3 public class DocumentationConfig implements SwaggerResourcesProvider {
 4     @Override
 5     public List<SwaggerResource> get() {
 6         List resources = new ArrayList<>();
 7         resources.add(swaggerResource("开车接口api", "/v2/api-docs", "0.0.0.1"));
 8         resources.add(swaggerResource("坐车接口api", "/v2/api-docs", "0.0.0.1"));
 9         return resources;
10     }
11 
12     private SwaggerResource swaggerResource(String name, String location, String version) {
13         SwaggerResource swaggerResource = new SwaggerResource();
14         swaggerResource.setName(name);
15         swaggerResource.setLocation(location);
16         swaggerResource.setSwaggerVersion(version);
17         return swaggerResource;
18     }
19 }

  主要加载文书档案的数据源,数据源主要通过 resources.add(swaggerResource("坐车接口api", "/v2/api-docs", "0.0.0.1"卡塔尔国State of Qatar 加多,要是你想加多任何api接口源就足以在这里地开展配备,直接把/v2/api-docs改成你的url就能够,这一个地方也是springcloud微服务api增加的进口;当编码完毕后大家来拜谒效果:

  新普京娱乐网址 7

  能打响加载出大家的login接口,何况有大器晚成对表达性的文字;再来看看我们呼吁和响应的参数是不是有表明:

  新普京娱乐网址 8

  央浼和响应都有了对应的证实,是还是不是挺轻松;

4.1 安装SwashbuckleEx

Install-Package SwashbuckleEx