前后端分离,后台负责写接口。随着接口越来越多,随时改变接口的可能性也很大,大家争吵是很正常的。
最常见的: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
来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。
Copyright©2013-2024 JSedu114 All Rights Reserved. 江苏教育信息综合发布查询平台保留所有权利
苏公网安备32010402000125 苏ICP备14051488号-3技术支持:南京博盛蓝睿网络科技有限公司
南京思必达教育科技有限公司版权所有 百度统计