前后端分离,后台负责写接口。随着接口越来越多,随时改变接口的可能性也很大,大家争吵是很正常的。
最常见的:Vue + SpringBoot
前后端分离,后台负责写接口。随着接口越来越多,随时改变接口的可能性也很大,大家争吵是很正常的。
先指定计划提纲,事实更新API,降低集成风险
传统是需要自己去维护一个doc的文档或者公司统一放在一个接口清单的web服务上。每次开发者需要单独添加上去。修改后还需要维护。
前后端分离:
前端测试后端接口:postman,就为了测一个接口还要下载第三方软件,太奢侈了
后端提供接口,实时更新消息及变动
现接入swagger,通过简单的注解即可生成文档,并且随着接口变化自动会变化。统一管理方便快捷
号称最流行的API框架
RestFul Api 文档在线自动生产,Api文档与定义同步更新
直接运行,可以在线测试接口
支持多种语言(java、php等)
1.新建SpringBoot项目
2.导入依赖
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version> </dependency>
3.随便写一个controller接口,比如 hello
4.配置swagger2,swagger2 是新版的,和swagger 是不一样的哦!
/**
* @author : aBiu---
*
* create at: 2019-12-20 16:20
*
* description: api接口配置
*/@Configuration@EnableSwagger2 // 开启public class SwaggerConfig { private ApiInfo apiInfo() { return new ApiInfoBuilder().title("API接口文档") //页面标题
.description("接口管理")//详细描述
.version("1.0.0") //版本号
.build();
} @Bean
public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()) // 需要上面定义的ApiInfo,信息显示到页面上
.groupName("aBiu") // 分组,如果想搞多个分组,就写多个Docket 的示例就行了
.select()
.apis(RequestHandlerSelectors.basePackage("com.*")) //这里写的是API接口所在的包位置,也可以设置其他扫描方式
.paths(PathSelectors.any()) // 过滤,有好几种方式可以设置
.build();
}
}5.测试运行,然后访问:http://localhost:8080/swagger-ui.html 或 http://localhost:8080/swagger-ui/index.html
由于版本的不同,可能名字不一样,具体可以到jar包里去看一下就好了
@Api: 修饰类,一般来描述Controller的@ApiOperation: 描述类的 方法 或者 接口@ApiParam: 单个参数描述@ApiModel: 用在实体类上面@ApiProperty: 实体类里面的属性@ApiImplicitParam: 用在 @ApiImplicitParams 注解中,指定一个请求参数的配置信息 name:参数名 value:参数的汉字说明、解释 required:参数是否必须传 paramType:参数放在哪个地方 · header --> 请求参数的获取:@RequestHeader · query --> 请求参数的获取:@RequestParam · path(用于restful接口)--> 请求参数的获取:@PathVariable · body(不常用) · form(不常用) dataType:参数类型,默认String,其它值dataType="Integer" defaultValue:参数的默认值 其它若干@ApiResponse: 描述HTTP响应其中1个的描述@ApiResponses: 描述出HTTP响应整体描述@ApiClass@ApiError@ApiErrors@ApiParamImplicit@ApiParamsImplicit
/**
* XXX 认证人员信息接口
* @param signerType
* @param certType
* @param certNo
* @param name
* @param phoneNo
* @param cardNo
* @param signSupplier
* @param authType
* @param notifyUrl
* @return
*/
@ApiOperation(value = "XXX 的接口", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "String", name = "signerType", dataType = "String", required = true, value = "签署人类型:1.个人,2.企业"),
@ApiImplicitParam(paramType = "String", name = "certType", dataType = "String", required = false, value = "证件类型:签署人类型是个人时必填"),
@ApiImplicitParam(paramType = "String", name = "certNo", dataType = "String", required = false, value = "签署人类型:签署人类型是个人时必填"),
@ApiImplicitParam(paramType = "String", name = "name", dataType = "String", required = true, value = "姓名"),
@ApiImplicitParam(paramType = "String", name = "phoneNo", dataType = "String", required = false, value = "手机号:签署人类型是个人时必填"),
@ApiImplicitParam(paramType = "String", name = "notifyUrl", dataType = "String", required = false, value = "回调地址")
})
@PostMapping("/signerInfo")
public ResultInfo signerInfo(String signerType, String certType, String certNo, String name, String phoneNo, @RequestParam(required = false) String notifyUrl){ return contractService.signerInfo(signerType,certType,certNo,name,phoneNo,cardNo,signSupplier,authType,notifyUrl);
}加入依赖
<dependency> <groupId>com.github.caspar-chen</groupId> <artifactId>swagger-ui-layer</artifactId> <version>1.1.3</version> </dependency>
访问地址 http://localhost:8080/docs.html
来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。
猜您喜欢暂不支持手机端,请登录电脑端访问