1. 程式人生 > >spring cloud-整合Swagger2構建RESTful服務的APIs

spring cloud-整合Swagger2構建RESTful服務的APIs

前言

在前面的部落格中,我們將服務註冊到了Eureka上,可以從Eureka的UI介面中,看到有哪些服務已經註冊到了Eureka Server上,但是,如果我們想檢視當前服務提供了哪些RESTful介面方法的話,就無從獲取了,傳統的方法是梳理一篇服務的介面文件來供開發人員之間來進行交流,這種情況下,很多時候,會造成文件和程式碼的不一致性,比如說程式碼改了,但是介面文件沒有改等問題,而Swagger2則給我們提供了一套完美的解決方案,下面,我們來看看Swagger2是如何來解決問題的。

一、引入Swagger2依賴的jar包

<!-- swagger2 -->
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger2</artifactId>
			<version>2.2.2</version>
		</dependency>
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger-ui</artifactId>
			<version>2.2.2</version>
		</dependency>
二、初始化Swagger2的配置
@Configuration
@EnableSwagger2 // 啟用Swagger2
public class Swagger2 {

    @Bean
    public Docket createRestApi() {// 建立API基本資訊
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.chhliu.jpa"))// 掃描該包下的所有需要在Swagger中展示的API,@ApiIgnore註解標註的除外
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {// 建立API的基本資訊,這些資訊會在Swagger UI中進行顯示
        return new ApiInfoBuilder()
                .title("Spring Boot中使用Swagger2構建RESTful APIs")// API 標題
                .description("rdcloud-jpa提供的RESTful APIs")// API描述
                .contact("
[email protected]
")// 聯絡人 .version("1.0")// 版本號 .build(); } }
注:該配置類需要在Application同級目錄下建立,在專案啟動的時候,就初始化該配置類

三、完善API文件資訊

public interface SonarControllerI {
	@ApiOperation(value="獲取專案組Sonar對應的Url資訊", notes="根據id獲取專案組Sonar對應的Url資訊")// 使用該註解描述介面方法資訊
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "SonarUrl表ID", required = true, dataType = "Long", paramType="path")
    })// 使用該註解描述方法引數資訊,此處需要注意的是paramType引數,需要配置成path,否則在UI中訪問介面方法時,會報錯
	@GetMapping("/get/{id}")
	SonarUrl get(@PathVariable Long id);
	
	@ApiOperation(value="獲取專案組Sonar對應的所有Url資訊")
	@GetMapping("/get/all")
	List<SonarUrl> getAll();
}

注:paramType表示引數的型別,可選的值為"path","body","query","header","form"

四、完善返回型別資訊

@Entity(name = "SONAR_URL")
public class SonarUrl implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@ApiModelProperty(value="主鍵", hidden=false, notes="主鍵,隱藏", required=true, dataType="Long")// 使用該註解描述屬性資訊,當hidden=true時,該屬性不會在api中顯示
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Long id;
	
	@ApiModelProperty(value="URL連結地址")
	@Column(name="URL")
	private String url;
	
	@ApiModelProperty(value="專案組")
	@Column(name="TEAM")
	private String team;

	@ApiModelProperty(value="部門")
	@Column(name="DEPARTMENT")
	private String department;
        ……省略getter,setter方法……
 }
五、啟動應用

1、在瀏覽器中輸入:http://localhost:7622/swagger-ui.html

2、結果如下:

六、API文件訪問與測試

Swagger除了提供API介面檢視的功能外,還提供了除錯測試功能


測試結果如下:


相關推薦

spring cloud-整合Swagger2構建RESTful服務APIs

前言 在前面的部落格中,我們將服務註冊到了Eureka上,可以從Eureka的UI介面中,看到有哪些服務已經註冊到了Eureka Server上,但是,如果我們想檢視當前服務提供了哪些RESTful介面方法的話,就無從獲取了,傳統的方法是梳理一篇服務的介面文件來供開發人員之

第六篇:Spring Boot整合Swagger2構建RESTful API文件

由於Spring Boot有快速開發、便捷部署等特性,所以很大一部分Spring Boot的使用者會用來構建RESTfulAPI。而我們構建RESTfulAPI的目的通常都是由於多終端的原因,這些終端會共用很多底層業務邏輯,因此我們會抽象出這樣一層來同時服務於多個移動端或者Web前端。

使用spring mvc或者resteasy構建restful服務

很好 trap 如何 系統 路徑 查找 factor 執行 閱讀 看到最近一個項目裏用resteasy來構建restful接口,有點不明白,不少Spring mvc4.0以後也可以很方面的實現restful服務嗎,為啥還要在Spring MVC的項目裏還引入resteasy

Spring Cloud(2):構建服務 - Spring Boot

color 並發 時間 基於 執行 sof mil master 超時 微服務的特點及構建遵循的原則 約束:微服務遵循UNIX理念,即應用程序是服務的集合,每個服務只做一件事,並做好一件事。 松耦合:基於微服務的應用程序是小型服務的集合,服務之間使用HTTP和REST通

整合swagger2構建Restful API

整合swagger2構建Restful API 在pom.xml中進行版本管理 <swagger.version>2.8.0</swagger.version> 給taosir-api的pom.xml中新增依賴配置 <!-- swagger start -

Spring boot 使用Swagger2構建RESTful API文件

前言 SwaggerUI可以說是一個非常好用的API文件工具,是前後端分離開發模式下的必備工具、具體實現及部分乾貨知識如下 匯入依賴 <!-- RESTful APIs swagger2 --> <dependency> <

[springboot::]整合swagger2,構建RESTful api

1.本來以為會很容易整合的,結果一直報404,試了好久,心累…最後終於找到解決辦法 http://localhost:8080/swagger-ui.html 訪問不到,原因是,是因為 MVC 沒有找到 swagger-ui 包中的 swagger-ui.html 檔案; 但是這個檔案在ja

使用Spring Cloud和Docker構建服務架構

如何使用Spring Boot、Spring Cloud、Docker和Netflix的一些開源工具來構建一個微服務架構。本文通過使用Spring Boot、Spring Cloud和Docker構建的概念型應用示例,提供了了解常見的微服務架構模式的起點。 該程式碼可以在GitHub上(https

spring boot整合jpa構建服務以及服務呼叫

一、Maven構建專案 1、訪問http://start.spring.io/ 2、選擇構建專案的基本資訊,參考下圖:   3、點選Generate Project下載專案壓縮包 4、下載後解壓到本地,並以Import -> Existing Maven Projec

Spring Cloud 整合 Swagger2

span import author div https hand ice opera sele 詳細用法: https://www.cnblogs.com/softidea/p/6251249.html 原文鏈接(註意文末):https://blog.csdn.n

Spring Boot 使用Swagger2構建RESTful風格的API線上文件 & 專案總結

之前做的專案中前後端完全分離,前端為嵌在手機app中的H5,後端需求限定了語言為Java,而且所給的時間非常少。 於是能夠快速搭建配置部署的Spring Boot專案就成了不二之選,加上Swagger2能夠方便的幫助我們構建出功能強大的線上介面文件,方便測試人

Spring boot整合mybatis實現Restful服務demo

首先要宣告,這個demo很大程度上參考了這篇文章: 所以把它歸為轉載之列。 首先建立資料表並插入一條資料(資料庫名隨意): DROP TABLE IF EXISTS `city`; CREATE TABLE `city` ( `id` int(10) unsig

Spring Cloud 整合 Swagger2 以及遇到的坑

一、引入依賴: <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <ve

Spring Boot中使用Swagger2構建RESTful APIs

end err sdk yaml ack tex 社區 控制器 prope 關於 Swagger Swagger能成為最受歡迎的REST APIs文檔生成工具之一,有以下幾個原因: Swagger 可以生成一個具有互動性的API控制臺,開發者可以用來快速學習和嘗試A

整合spring cloud企業分布式微服務雲架構

pri 研發 記錄 包括 space https 朋友 通用 業界 今天正式給大家介紹了Spring Cloud - HongHu企業分布式微服務雲架構,我這邊結合了當前大部分企業的通用需求,包括技術的選型比較嚴格、苛刻,不僅要用業界最流行的技術,還要和國際接軌,在未來的5

企業分布式微服務雲SpringCloud SpringBoot mybatis (二十五)集成swagger2構建Restful API

sel ima eth syn conf ring 但是 batis 關註 一、引入依賴 <dependency> <groupId>io.springfox</groupId> <

Spring Boot 整合 swagger2 自動生成 RESTFul API 文檔

pat turn ket config 文件 pen 用戶 配置文件 方式 1)首先編輯pom.xml添加依賴 <dependency>   <groupId>io.springfox</groupId>   <artifactI

服務Spring Cloud—Feign簡介和為服務消費者整合

Feign簡介 Feign是Netflix開發的宣告式、模組化的HTTP客戶端,其靈感來自Retrofit、JAXRS-2.0以及WebSocket。Feign可幫組我們更加便捷、優雅的呼叫HTTP API。 在Spring Cloud中,使用Feign非常簡單——建立一個介面,並在

Java架構-(三)spring cloud服務分散式雲架構 - Spring Cloud整合專案簡介

Spring Cloud整合專案有很多,下面我們列舉一下和Spring Cloud相關的優秀專案,我們的企業架構中用到了很多的優秀專案,說白了,也是站在巨人的肩膀上去整合的。在學習Spring Cloud之前大家必須瞭解一下相關專案,希望可以幫助到大家。 Spring Cloud C

Java架構-(十五) 整合spring cloud雲架構 - commonservice-sso服務搭建(一)

前面幾篇我們已經介紹了Spring Cloud和oauth2的知識點,今天我們要利用Spring Cloud和oauth2進行commonservice-sso服務搭建,本節我們只是搭建commonservice-sso的基礎平臺,閒話少說,直接將步驟記錄下來: 建立mave