springcloud聚合项目-动态路由zuul-Eureka-Feign-Hystrix-config配置中心-swagger

本文主要为swagger的使用

一、swagger单独使用

代码链接:https://pan.baidu.com/s/1RFr1kr1BYZ_yPoRgBzrxKA 
提取码:bh7e

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>mark.zp</groupId>
  <artifactId>springcloud2.0-mark-swagger</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.1.RELEASE</version>
	</parent>
	<!-- 管理依赖 -->
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Finchley.SR2</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<!-- eureka服务 -->
	<dependencies>
		<!-- 整合web -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<!-- 配置swagger,接口文档生成 -->
		<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.8.0</version>
        </dependency>
	</dependencies>
	<!-- 这里必须添加,不然有各种依赖问题 -->
	<repositories>
		<repository>
			<id>spring-milestones</id>
			<name>Spring Milestones</name>
			<url>https://repo.spring.io/libs-milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>
</project>

bootstrap.yml

### 服务启动端口号
server:
 port: 8080
### 服务别名
spring:
 application:
  name: swagger-server

SwaggerConfig.java

package mark.zp.config;

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

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;

@Configuration
@EnableSwagger2  // 表示开启Swagger
public class SwaggerConfig {
	@Bean
	public Docket createRestApi() {
		return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
				.apis(RequestHandlerSelectors.basePackage("mark.zp.api")).paths(PathSelectors.any())
				.build();
	}

	/**
	 * @describe:创建API文档信息
	 */
	private ApiInfo apiInfo() {
		// 标题    title
		// 描述   description
		// 网址  termsOfServiceUrl
		// 版本  version
		return new ApiInfoBuilder().title("springcloud接口文档").description("接口文档描述")
				.termsOfServiceUrl("localhost:8080").version("1.0").build();
	}
}
package mark.zp.api;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
@Api("Swagger控制器")
@RestController
public class SwaggerController {
	
	@ApiOperation(value = "演示接口")
	@GetMapping("index")
	public String getIndex() {
		System.out.println("getIndex");
		return null;
		
	}
	
	@ApiOperation(value = "演示接口")
	@ApiImplicitParam(name = "userName",value = "用户参数信息",required = true,dataType = "String")
	@PostMapping("index")
	public String getMember(String userName) {
		System.out.println("getMember" + userName);
		return "getMember" + userName;
	}
}
@SpringBootApplication
public class AppSwagger {

	public static void main(String[] args) {
		SpringApplication.run(AppSwagger.class, args);
	}
}

启动并访问:http://localhost:8080/swagger-ui.html

 

二、微服务中使用swagger

代码链接:https://pan.baidu.com/s/153Vfmy_n9KbIIT_MkMvt9g 
提取码:ubdn

1、在订单服务、网关服务、会员服务中添加如下

<dependency>
	<groupId>com.spring4all</groupId>
	<artifactId>swagger-spring-boot-starter</artifactId>
	<version>1.9.0.RELEASE</version>
</dependency>

并在以上三个项目的启动类添加@EnableSwagger2Doc,开启swagger;

2、在网关启动类中添加内部类

// 添加文档来源
	@Component
	@Primary
	class DocmentationConfig implements SwaggerResourcesProvider {

		/**
		 * @describe:第二个参数开头为网关配置中个服务的path
		 * @param:@return
		 * @author:赵鹏   yixuanzp@aliyun.com
		 * @date:2020年3月21日
		 */
		@Override
		public List<SwaggerResource> get() {
			List<SwaggerResource> list = new ArrayList<SwaggerResource>();
			list.add(swaggerResource("zuul-api-member","/api-member/v2/api-docs","1.0"));
			list.add(swaggerResource("zuul-api-order","/api-order/v2/api-docs","1.0"));
			return list;
		}
		
		private SwaggerResource swaggerResource(String name,String location,String version){
			SwaggerResource swaggerResource = new SwaggerResource();
			swaggerResource.setName(name);
			swaggerResource.setLocation(location);
			swaggerResource.setSwaggerVersion(version);
			return swaggerResource;
		}
	}

并在会员服务于订单服务的Api类中添加@Api注解

3、启动Eureka服务,config-server服务,zuul服务,order-impl,member-impl服务

访问:http://localhost:81/swagger-ui.html      此为网关服务的地址

通过

通过下图可以调试接口

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值