實(shí)戰(zhàn)分布式醫(yī)療掛號(hào)系統(tǒng)之整合Swagger2到通用模塊
文章導(dǎo)讀
本系列文章介紹從0開始搭建一個(gè)基于分布式的醫(yī)療掛號(hào)系統(tǒng)。本次四篇文章完成了醫(yī)院設(shè)置微服務(wù)模塊的后端接口,為了方便開發(fā),對(duì)接口的返回結(jié)果、全局異常、全局日志進(jìn)行了統(tǒng)一處理。 同時(shí),為了方便進(jìn)行訪問測(cè)試,還整合了Swagger2工具,這些通用的模塊中,除了全局日志被放在醫(yī)院設(shè)置微服務(wù)模塊的配置資源中,其余都統(tǒng)一被抽取在common模塊中。具體實(shí)現(xiàn)可參考下面文章:
醫(yī)院設(shè)置微服務(wù) | 接口開發(fā)
通用模塊 | 統(tǒng)一返回結(jié)果、統(tǒng)一異常處理、統(tǒng)一日志處理
項(xiàng)目已開源至 https://github.com/Guoqianliang/yygh_parent
在使用REST風(fēng)格進(jìn)行接口的開發(fā)測(cè)試時(shí),post請(qǐng)求無(wú)法使用瀏覽器直接進(jìn)行訪問測(cè)試,目前流行的解決方案是使用Swagger2。Swagger2是一個(gè)API接口文檔,通過Swagger2可以方便各種提交方式的接口測(cè)試。
通過Swagger2,我們可以看到接口名稱、請(qǐng)求方法、傳遞參數(shù)、返回信息等。
通用模塊整合swagger2步驟
本項(xiàng)目中,眾多的微服務(wù)都需要整合Swagger2,所以我將其依賴引入在了通用的common父模塊中,配置在common_util
模塊中。
1.引入swagger依賴
<!--swagger--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> </dependency>
2.配置Swagger2
如下的Swagger2配置信息中分別創(chuàng)建了webApi分組和adminApi分組的Bean。
/** * Swagger2配置信息 */ @Configuration @EnableSwagger2 public class Swagger2Config { @Bean public Docket webApiConfig() { return new Docket(DocumentationType.SWAGGER_2) .groupName("webApi") .apiInfo(webApiInfo()) .select() //只顯示api路徑下的頁(yè)面 .paths(Predicates.and(PathSelectors.regex("/api/.*"))) .build(); } @Bean public Docket adminApiConfig() { return new Docket(DocumentationType.SWAGGER_2) .groupName("adminApi") .apiInfo(adminApiInfo()) .select() //只顯示admin路徑下的頁(yè)面 .paths(Predicates.and(PathSelectors.regex("/admin/.*"))) .build(); } private ApiInfo webApiInfo() { return new ApiInfoBuilder() .title("網(wǎng)站-API文檔") .description("本文檔描述了網(wǎng)站微服務(wù)接口定義") .version("1.0") .contact(new Contact("gql", "http://gql.com", "guoqianliang@foxmail.com")) .build(); } private ApiInfo adminApiInfo() { return new ApiInfoBuilder() .title("后臺(tái)管理系統(tǒng)-API文檔") .description("本文檔描述了后臺(tái)管理系統(tǒng)微服務(wù)接口定義") .version("1.0") .contact(new Contact("gql", "http://gql.com", "guoqianliang@foxmail.com")) .build(); } }
3.啟動(dòng)類添加包掃描
Swagger2的配置類寫好了,現(xiàn)在需要在service_host模塊使用配置類。由于二者不在同一個(gè)項(xiàng)目中,所以需要在service_host模塊的父模塊的pom中引入service_util
。
而兩者包名不同,還需要額外在啟動(dòng)類上添加包掃描。
測(cè)試
項(xiàng)目啟動(dòng)后訪問:http://localhost:8201/swagger-ui.html ,可以看到項(xiàng)目中接口的信息:
在Controller中添加下面幾個(gè)簡(jiǎn)單的Api注解,可以將swagger中的一些信息定義為中文:
如果需要測(cè)試接口,我們只需要點(diǎn)擊接口下方的Try it out
按鈕:
點(diǎn)擊按鈕后即可,看到接口的一系列返回信息:
swagger常用注解
注解 | 說(shuō)明 |
---|---|
@Api | 修飾整個(gè)類,描述Controller的作用 |
@ApiOperation | 描述一個(gè)類的一個(gè)方法,或者說(shuō)一個(gè)接口 |
@ApiParam | 單個(gè)參數(shù)描述 |
@ApiModel | 用對(duì)象來(lái)接收參數(shù) |
@ApiModelProperty | 用對(duì)象接收參數(shù)時(shí),描述對(duì)象的一個(gè)字段 |
@ApiImplicitParam | 一個(gè)請(qǐng)求參數(shù) |
@ApiImplicitParams | 多個(gè)請(qǐng)求參數(shù) |
以上就是實(shí)戰(zhàn)分布式醫(yī)療掛號(hào)系統(tǒng)之整合Swagger2到通用模塊的詳細(xì)內(nèi)容,更多關(guān)于分布式醫(yī)療掛號(hào)整合Swagger2模塊的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 分布式醫(yī)療掛號(hào)系統(tǒng)SpringCache與Redis為數(shù)據(jù)字典添加緩存
- 分布式醫(yī)療掛號(hào)系統(tǒng)EasyExcel導(dǎo)入導(dǎo)出數(shù)據(jù)字典的使用
- 分布式開發(fā)醫(yī)療掛號(hào)系統(tǒng)數(shù)據(jù)字典模塊前后端實(shí)現(xiàn)
- 實(shí)戰(zhàn)分布式醫(yī)療掛號(hào)通用模塊統(tǒng)一返回結(jié)果異常日志處理
- 實(shí)戰(zhàn)分布式醫(yī)療掛號(hào)系統(tǒng)之設(shè)置微服務(wù)接口開發(fā)模塊
- 實(shí)戰(zhàn)分布式醫(yī)療掛號(hào)系統(tǒng)之設(shè)置微服務(wù)搭建醫(yī)院模塊
- 實(shí)戰(zhàn)分布式醫(yī)療掛號(hào)系統(tǒng)開發(fā)醫(yī)院科室及排班的接口
相關(guān)文章
SpringBoot?spring.factories加載時(shí)機(jī)分析
這篇文章主要為大家介紹了SpringBoot?spring.factories加載時(shí)機(jī)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03java教程之對(duì)象序列化使用基礎(chǔ)示例詳解
所謂對(duì)象序列化就是將對(duì)象的狀態(tài)轉(zhuǎn)換成字節(jié)流,以后可以通過這些值再生成相同狀態(tài)的對(duì)象,下面詳細(xì)介紹一下java對(duì)象的序列化使用方法2014-01-01Mybatis generator如何自動(dòng)生成代碼
這篇文章主要介紹了Mybatis generator如何自動(dòng)生成代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12java實(shí)現(xiàn)求只出現(xiàn)一次的數(shù)字
本文主要介紹了java實(shí)現(xiàn)求只出現(xiàn)一次的數(shù)字,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02解決springboot項(xiàng)目找不到resources目錄下的資源問題
這篇文章主要介紹了解決springboot項(xiàng)目找不到resources目錄下的資源問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08java遍歷http請(qǐng)求request的所有參數(shù)實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇java遍歷http請(qǐng)求request的所有參數(shù)實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-09-09