摘要:建一個(gè)單元測(cè)試類其中,注解開(kāi)啟了生成文件,并指定了存放位置。怎么用創(chuàng)建一個(gè)新文件用構(gòu)建文檔這個(gè)例子非常簡(jiǎn)單,通過(guò)單元測(cè)試和一些簡(jiǎn)單的配置就能夠得到文檔了。
準(zhǔn)備工作
你需要15min Jdk 1.8 maven 3.0+ idea創(chuàng)建工程
引入依賴,其pom文件:
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframework.restdocs spring-restdocs-mockmvc test
通過(guò)@SpringBootApplication,開(kāi)啟springboot
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
在springboot通常創(chuàng)建一個(gè)controller:
@RestController public class HomeController { @GetMapping("/") public Mapgreeting() { return Collections.singletonMap("message", "Hello World"); } }
啟動(dòng)工程,訪問(wèn)localhost:8080,瀏覽器顯示:
{“message”:”Hello World”}
證明接口已經(jīng)寫(xiě)好了,但是如何通過(guò)restdoc生存api文檔呢
Restdoc,通過(guò)單元測(cè)試生成api文檔restdocs是通過(guò)單元測(cè)試生存snippets文件,然后snippets根據(jù)插件生成htm文檔的。
建一個(gè)單元測(cè)試類:
@RunWith(SpringRunner.class) @WebMvcTest(HomeController.class) @AutoConfigureRestDocs(outputDir = "target/snippets") public class WebLayerTest { @Autowired private MockMvc mockMvc; @Test public void shouldReturnDefaultMessage() throws Exception { this.mockMvc.perform(get("/")).andDo(print()).andExpect(status().isOk()) .andExpect(content().string(containsString("Hello World"))) .andDo(document("home")); } }
其中,@ AutoConfigureRestDocs注解開(kāi)啟了生成snippets文件,并指定了存放位置。
啟動(dòng)單元測(cè)試,測(cè)試通過(guò),你會(huì)發(fā)現(xiàn)在target文件下生成了一個(gè)snippets文件夾,其目錄結(jié)構(gòu)如下:
└── target └── snippets └── home └── httpie-request.adoc └── curl-request.adoc └── http-request.adoc └── http-response.adoc
默認(rèn)情況下,snippets是Asciidoctor格式的文件,包括request和reponse,另外其他兩種httpie和curl兩種流行的命令行的http請(qǐng)求模式。
到目前為止,只生成了Snippets文件,需要用Snippets文件生成文檔。
怎么用Snippets創(chuàng)建一個(gè)新文件src/main/asciidoc/index.adoc :
用 Spring REST Docs 構(gòu)建文檔
This is an example output for a service running at http://localhost:8080: .request include::{snippets}/home/http-request.adoc[] .response include::{snippets}/home/http-response.adoc[]
這個(gè)例子非常簡(jiǎn)單,通過(guò)單元測(cè)試和一些簡(jiǎn)單的配置就能夠得到api文檔了。
adoc的書(shū)寫(xiě)格式,參考:http://docs.spring.io/spring-...,這里不多講解。
需要使用asciidoctor-maven-plugin插件,在其pom文件加上:
org.asciidoctor asciidoctor-maven-plugin generate-docs prepare-package process-asciidoc index.adoc html ${project.build.directory}/snippets
這時(shí)只需要通過(guò)mvnw package命令就可以生成文檔了。
在/target/generated-docs下有個(gè)index.html,打開(kāi)這個(gè)html,顯示如下,界面還算簡(jiǎn)潔:
通過(guò)單元測(cè)試,生存adoc文件,再用adoc文件生存html,只需要簡(jiǎn)單的幾步就可以生成一個(gè)api文檔的html文件,這個(gè)html文件你可以通網(wǎng)站發(fā)布出去。整個(gè)過(guò)程很簡(jiǎn)單,對(duì)代碼無(wú)任何影響。
源碼下載:https://github.com/forezp/Spr...
參考資料restdocs
http://docs.spring.io/spring-...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/70370.html
摘要:特點(diǎn)具備相當(dāng)?shù)暮玫撵`活性,不僅能夠使用來(lái)定義緩存的和各種,還提供開(kāi)箱即用的緩存臨時(shí)存儲(chǔ)方案,也支持和主流的專業(yè)緩存例如的集成。其中號(hào)代表這是一個(gè)表達(dá)式,此表達(dá)式可以遍歷方法的參數(shù)對(duì)象,具體語(yǔ)法可以參考的相關(guān)文檔手冊(cè)。 SpringBoot 是為了簡(jiǎn)化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問(wèn)題而誕生的產(chǎn)物,自動(dòng)裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,...
摘要:特點(diǎn)具備相當(dāng)?shù)暮玫撵`活性,不僅能夠使用來(lái)定義緩存的和各種,還提供開(kāi)箱即用的緩存臨時(shí)存儲(chǔ)方案,也支持和主流的專業(yè)緩存例如的集成。其中號(hào)代表這是一個(gè)表達(dá)式,此表達(dá)式可以遍歷方法的參數(shù)對(duì)象,具體語(yǔ)法可以參考的相關(guān)文檔手冊(cè)。 SpringBoot 是為了簡(jiǎn)化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問(wèn)題而誕生的產(chǎn)物,自動(dòng)裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,...
摘要:沒(méi)錯(cuò),不支持,從導(dǎo)出的文檔也可以看到,部分中文無(wú)法顯示,目前我也尚未找到是否有配置可以實(shí)現(xiàn)這個(gè)功能。相對(duì)前面的方式,使用起來(lái)更加簡(jiǎn)單,也可以修改配置輸出中文。 更多精彩博文,歡迎訪問(wèn)我的個(gè)人博客 說(shuō)明 我個(gè)人是一直使用Swagger作為接口文檔的說(shuō)明的。但是由于在一些情況下,接口文檔說(shuō)明需要以文件的形式交付出去,如果再重新寫(xiě)一份文檔難免有些麻煩。于是在網(wǎng)上看到了Swagger2Mar...
摘要:導(dǎo)讀在團(tuán)隊(duì)協(xié)作的時(shí)候許多時(shí)候需要用到接口文檔,我們通常通過(guò)手工編寫(xiě)大量重復(fù)格式的文檔,讓我想起了程序員最討厭的兩件事沒(méi)有文檔,編寫(xiě)文檔。對(duì)應(yīng)的資料可自行谷歌。關(guān)于和官網(wǎng)是這樣描述的。我們可以理解為為基于構(gòu)建的自動(dòng)生成文檔。 導(dǎo)讀: 在團(tuán)隊(duì)協(xié)作的時(shí)候許多時(shí)候需要用到接口文檔,我們通常通過(guò)手工編寫(xiě)大量重復(fù)格式的文檔,讓我想起了程序員最討厭的兩件事:沒(méi)有文檔,編寫(xiě)文檔。哈哈,如果使用過(guò)swa...
閱讀 3445·2023-04-25 18:03
閱讀 1213·2021-11-15 11:38
閱讀 5842·2021-10-25 09:45
閱讀 897·2021-09-24 09:48
閱讀 2410·2021-09-22 15:34
閱讀 1791·2019-08-30 15:44
閱讀 2746·2019-08-30 13:12
閱讀 649·2019-08-29 16:05