ITKeyword,专注技术干货聚合推荐

注册 | 登录

基于SpringCloud的Microservices架构实战案例-在线API管理

guooo 分享于

2021腾讯云限时秒杀,爆款1核2G云服务器298元/3年!(领取2860元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1062

2021阿里云最低价产品入口+领取代金券(老用户3折起),
入口地址https://www.aliyun.com/minisite/goods

推荐:基于SpringCloud的Microservices架构实战案例-架构拆解

自第一篇《 基于SpringCloud的Microservices架构实战案例-序篇》发表出来后,差不多有半年时间了,一直也没有接着拆分完,有如读本书一样,也是需要契机的,还是

simplemall项目前几篇回顾: 1基于SpringCloud的Microservices架构实战案例-序篇 2基于SpringCloud的Microservices架构实战案例-架构拆解 3基于SpringCloud的Microservices架构实战案例-配置文件属性内容加解密 源码地址:https://github.com/backkoms/simplemall 前端和后端的唯一联系,变成了API接口;API文档变成了前后端开发人员联系的纽带,变得越来越重要,swagger就是一款让你更好的书写API文档的框架。 本实战案例中也引入swagger2作为API管理工具,下面罗列下swagger2+SpringBoot使用步骤。 SpringBoot集成Swagger2 第一步,pom配置 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency>

<groupId>io.springfox</groupId>

<artifactId>springfox-swagger2</artifactId>

<version>2.6.1</version> </dependency>

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> <dependency>

<groupId>io.springfox</groupId>

<artifactId>springfox-swagger-ui</artifactId>

<version>2.6.1</version> </dependency> 第二步编写配置管理类Swagger2Config package com.simplemall.micro.serv.page;

import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;

import io.swagger.annotations.ApiOperation; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2;

/** * swagger2 configuration * * @author guooo * */ @Configuration//SpringBoot启动时自动装载 @EnableSwagger2//打开swagger2功能,缺失的话同样无法打开ui页面 publicclassSwagger2Config{

@Bean

publicDocket createRestApi(){

returnnewDocket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()

.apis(RequestHandlerSelectors.basePackage("com.simplemall.micro.serv.page.api"))

.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))

.paths(PathSelectors.any())

.build();

}

privateApiInfo apiInfo(){

returnnewApiInfoBuilder().title("Front app Swagger apis").description("For micro-service 's app to use")

.version("V1.0").build();

} } 经过以上两步简单的配置后,可以直接进行接口代码的编写。 @Api(value ="用户服务", tags ="用户服务接口") @RestController @RefreshScope// 使用该注解的类,会在接到SpringCloud配置中心配置刷新的时候,自动将新的配置更新到该类对应的字段中。需要重新触发加载动作可以使用POST方式请求/refresh接口,该接口位于spring-boot-starter-actuator依赖,调用前需添加否则404。 publicclassAPIAccountController{

@ApiOperation(value ="用户登陆")

@RequestMapping(value ="acc/login", method ={RequestMethod.POST })

publicRestAPIResult<String> login(@ApiParam(value ="手机号")@RequestParam(required =true)String phone,

@ApiParam(value ="密码")@RequestParam(required =true)String password,HttpSession session){

RestAPIResult<String> restAPIResult =newRestAPIResult<>();

Account account = accountFeignClient.login(phone, password);

} 使用swagger进行API管理的话,对代码有一定的侵入性,这个需要考虑在内。之前也提到过几种在线API的管理方式,点击链接《介绍几款常用的在线API管理工具》 使用SpringBoot技术,再以maven原始的方式引入swagger使用的话,远不如一个starter来的爽,这里介绍一个swagger-starter,可以更快捷的与spring boot集成使用。 swagger-spring-boot-starter应用 在pom.xml中引入依赖:【当前最新版本 1.7.0.RELEASE】 <dependency>

<groupId>com.spring4all</groupId>

<artifactId>swagger-spring-boot-starter</artifactId>

<version>1.7.0.RELEASE</version> </dependency> 注意:从1.6.0开始,我们按Spring Boot官方建议修改了artifactId为swagger-spring-boot-starter,1.6.0之前的版本不做修改,依然为使用spring-boot-starter-swagger ! 在应用主类中增加@EnableSwagger2Doc注解 @EnableSwagger2Doc @SpringBootApplication publicclassBootstrap{

publicstaticvoid main(String[] args){

SpringApplication.run(Bootstrap.class, args);

}

} 默认情况下就能产生所有当前Spring MVC加载的请求映射文档。 参数配置,配置示例 swagger.enabled=true

swagger.title=spring-boot-starter-swagger swagger.description=Starterfor swagger 2.x swagger.version=1.4.0.RELEASE swagger.license=ApacheLicense,Version2.0 swagger.licenseUrl=https://www.apache.org/licenses/LICENSE-2.0.html

swagger.termsOfServiceUrl=https://github.com/dyc87112/spring-boot-starter-swagger

swagger.contact.name=didi swagger.contact.url=http://blog.didispace.com

swagger.contact.email=dyc87112@qq.com swagger.base-package=com.didispace swagger.base-path=/** swagger.exclude-path=/error, /ops/**

swagger.globalOperationParameters[0].name=name one swagger.globalOperationParameters[0].description=some description one swagger.globalOperationParameters[0].modelRef=string swagger.globalOperationParameters[0].parameterType=header swagger.globalOperationParameters[0].required=true swagger.globalOperationParameters[1].name=name two swagger.globalOperationParameters[1].description=some description two swagger.globalOperationParameters[1].modelRef=string swagger.globalOperationParameters[1].parameterType=body swagger.globalOperationParameters[1].required=false

// 取消使用默认预定义的响应消息,并使用自定义响应消息 swagger.apply-default-response-messages=false swagger.global-response-message.get[0].code=401 swagger.global-response-message.get[0].message=401get swagger.global-response-message.get[1].code=500 swagger.global-response-message.get[1].message=500get swagger.global-response-message.get[1].modelRef=ERROR swagger.global-response-message.post[0].code=500 swagger.global-response-message.post[0].message=500post swagger.global-response-message.post[0].modelRef=ERROR 详细介绍可参考源码,地址:https://github.com/SpringForAll/spring-boot-starter-swagger。由于JDK代码编译版本的限制,JDK1.7是不支持的,可使用1.8 扩展阅读: 如何从传统软件开发顺利过渡到互联网技术开发 学习新技术时你应当掌握的『最少必要知识』 软技能:代码之外的生存指南 程序员,保护你的好奇心和求知欲 那些会阻碍程序员成长的细节[7] 那些会阻碍程序员成长的细节[6] 那些会阻碍程序员成长的细节[5] 来听听一位『大龄程序员』的心声 IT人士如何扛起工作生活两座大山 做了七年软件开发后反而更迷茫 程序员,保护你的好奇心和求知欲

推荐:程序员必备Java API和类搜索辅助工具发布

发布时间:2009.06.23 10:29     来源:csdn    作者:csdn 根据国外媒体报道,卡耐基梅隆大学计算机系的研究人员日前开发了两款工具用于帮助程序员从成千上万的

simplemall项目前几篇回顾: 1基于SpringCloud的Microservices架构实战案例-序篇 2基于SpringCloud的Microservices架构实战案例-架构拆解 3基于SpringCloud的Microservices架构实战案例-配置文

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。