当前位置: 首页 > news >正文

南沙企业网站建设网站建设优化托管

南沙企业网站建设,网站建设优化托管,百度地图怎么搜街景,9420高清免费视频在线观看有很多读者问过这样的一个问题#xff1a;虽然使用Swagger可以为Spring MVC编写的接口生成了API文档#xff0c;但是在微服务化之后#xff0c;这些API文档都离散在各个微服务中#xff0c;是否有办法将这些接口都整合到一个文档中#xff1f;之前给大家的回复都只是简单的… 有很多读者问过这样的一个问题虽然使用Swagger可以为Spring MVC编写的接口生成了API文档但是在微服务化之后这些API文档都离散在各个微服务中是否有办法将这些接口都整合到一个文档中之前给大家的回复都只是简单的说了个思路昨天正好又有人问起索性就举个例子写成博文供大家参考吧。 如果您还不了解Spring Cloud Zuul和Swagger建议优先阅读下面两篇有一个初步的了解 Spring Cloud构建微服务架构服务网关基础Spring Boot中使用Swagger2构建强大的RESTful API文档 准备工作 上面说了问题的场景是在微服务化之后所以我们需要先构建两个简单的基于Spring Cloud的微服务命名为swagger-service-a和swagger-service-b。 下面只详细描述一个服务的构建内容另外一个只是名称不同如有疑问可以在文末查看详细的代码样例。 第一步构建一个基础的Spring Boot应用在pom.xml中引入eureka的依赖、web模块的依赖以及swagger的依赖这里使用了我们自己构建的starter详细可点击查看。主要内容如下 parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version1.5.10.RELEASE/version relativePath//parentdependencies dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-eureka/artifactId /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency dependency groupIdcom.spring4all/groupId artifactIdswagger-spring-boot-starter/artifactId version1.7.0.RELEASE/version /dependency/dependenciesdependencyManagement dependencies dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-dependencies/artifactId versionDalston.SR1/version typepom/type scopeimport/scope /dependency /dependencies/dependencyManagement第二步编写应用主类 EnableSwagger2DocEnableDiscoveryClientSpringBootApplicationpublic class Application { public static void main(String[] args) { new SpringApplicationBuilder(Application.class).web(true).run(args); } RestController class AaaController { Autowired DiscoveryClient discoveryClient; GetMapping(/service-a) public String dc() { String services Services: discoveryClient.getServices(); System.out.println(services); return services; } }}其中EnableSwagger2Doc注解是我们自制Swagger Starter中提供的自定义注解通过该注解会初始化默认的Swagger文档设置。下面还创建了一个通过Spring MVC编写的HTTP接口用来后续在文档中查看使用。 第三步设置配置文件内容 spring.application.nameswagger-service-aserver.port10010eureka.client.serviceUrl.defaultZonehttp://eureka.didispace.com/eureka/swagger.base-packagecom.didispace其中eureka服务端的配置采用了本站的公益eureka大家可以通过http://eureka.didispace.com/查看详细以及使用方法。另外swagger.base-package参数制定了要生成文档的package只有com.didispace包下的Controller才会被生成文档。 注意上面构建了swagger-service-a服务swagger-service-b服务可以如法炮制不再赘述。 构建API网关并整合Swagger 在Spring Cloud构建微服务架构服务网关基础一文中已经非常详细的介绍过使用Spring Cloud Zuul构建网关的详细步骤这里主要介绍在基础网关之后如何整合Swagger来汇总这些API文档。 第一步在pom.xml中引入swagger的依赖这里同样使用了我们自制的starter所以主要的依赖包含下面这些 dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-zuul/artifactId/dependencydependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-eureka/artifactId/dependencydependency groupIdcom.spring4all/groupId artifactIdswagger-spring-boot-starter/artifactId version1.7.0.RELEASE/version/dependency第二步在应用主类中配置swagger具体如下 EnableSwagger2DocEnableZuulProxySpringCloudApplicationpublic class Application { public static void main(String[] args) { new SpringApplicationBuilder(Application.class).web(true).run(args); } Component Primary class DocumentationConfig implements SwaggerResourcesProvider { Override public ListSwaggerResource get() { List resources new ArrayList(); resources.add(swaggerResource(service-a, /swagger-service-a/v2/api-docs, 2.0)); resources.add(swaggerResource(service-b, /swagger-service-b/v2/api-docs, 2.0)); return resources; } private SwaggerResource swaggerResource(String name, String location, String version) { SwaggerResource swaggerResource new SwaggerResource(); swaggerResource.setName(name); swaggerResource.setLocation(location); swaggerResource.setSwaggerVersion(version); return swaggerResource; } }}说明EnableSwagger2Doc上面说过是开启Swagger功能的注解。这里的核心是下面对SwaggerResourcesProvider的接口实现部分通过SwaggerResource添加了多个文档来源按上面的配置网关上Swagger会通过访问/swagger-service-a/v2/api-docs和swagger-service-b/v2/api-docs来加载两个文档内容同时由于当前应用是Zuul构建的API网关这两个请求会被转发到swagger-service-a和swagger-service-b服务上的/v2/api-docs接口获得到Swagger的JSON文档从而实现汇总加载内容。 测试验证 将上面构建的两个微服务以及API网关都启动起来之后访问网关的swagger页面比如http://localhost:11000/swagger-ui.html此时可以看到如下图所示的内容 可以看到在分组选择中就是当前配置的两个服务的选项选择对应的服务名之后就会展示该服务的API文档内容。 代码示例 本文示例读者可以通过查看下面仓库的中的swagger-service-a、swagger-service-b、swagger-api-gateway三个项目 GithubGitee 如果您对这些感兴趣欢迎star、follow、收藏、转发给予支持 以下专题教程也许您会有兴趣 Spring Boot基础教程Spring Cloud基础教程
http://www.zqtcl.cn/news/2232/

相关文章:

  • 建设管理网站首页旅游网站怎样做网络宣传
  • 做网站gzip压缩自己网站开发
  • 做网站的技术困难天津设计院排名
  • 网站备案查询重庆沙坪坝二手房出售信息
  • 郑州高端网站定制网站打开的速度特别慢的原因
  • 个体户 建设网站wordpress 群发邮件
  • 公司网站建设项目详情什么是网络营销媒体
  • 上海建设网站制作柒比贰Wordpress
  • 网站都有后台吗网页空间和数据库的区别
  • 邯郸住房城乡建设厅网站如何做网站大管家
  • 家乡网站设计目的网站建设首选定制开发
  • 怎么做有趣视频网站竞价托管哪家公司好
  • 网站备案查询网址百度注册新账号
  • 网站收录一键提交欧美购物网站排名
  • 找个会做网站的 一起做网站网站建设与网页设计从入门到精通 pdf
  • icp网站备案密码找回指数计算器
  • 爱网站长尾广告传媒公司名称
  • 有免费做门户网站吗h5响应式网站模板制作
  • 家居网站建设行业现状上海平台网站建设企业
  • 大型网站运营步骤如何本地搭建网站
  • 车网站模板预览工业信息化部网站备查询
  • 合肥模板建站多少钱男子替人做网站网站
  • 深圳罗湖区网站建设公司做网站的那些个人工作室
  • 网站入口百度惠州东莞网站建设
  • 网站的设计过程怎么制作网页表白
  • 中国做机床的公司网站网站搭建者
  • 宝塔网站建设昆明网站制作内容
  • 丽江市住房与城乡建设局网站动画制作软件免费
  • 成品网站建设流程图百度上搜索关键词如何在首页
  • 二手交易平台网站的建设洞口网站建设