摘要:建一個單元測試類其中,注解開啟了生成文件,并指定了存放位置。怎么用創建一個新文件用構建文檔這個例子非常簡單,通過單元測試和一些簡單的配置就能夠得到文檔了。
準備工作
你需要15min Jdk 1.8 maven 3.0+ idea創建工程
引入依賴,其pom文件:
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframework.restdocs spring-restdocs-mockmvc test
通過@SpringBootApplication,開啟springboot
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
在springboot通常創建一個controller:
@RestController public class HomeController { @GetMapping("/") public Mapgreeting() { return Collections.singletonMap("message", "Hello World"); } }
啟動工程,訪問localhost:8080,瀏覽器顯示:
{“message”:”Hello World”}
證明接口已經寫好了,但是如何通過restdoc生存api文檔呢
Restdoc,通過單元測試生成api文檔restdocs是通過單元測試生存snippets文件,然后snippets根據插件生成htm文檔的。
建一個單元測試類:
@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注解開啟了生成snippets文件,并指定了存放位置。
啟動單元測試,測試通過,你會發現在target文件下生成了一個snippets文件夾,其目錄結構如下:
└── target └── snippets └── home └── httpie-request.adoc └── curl-request.adoc └── http-request.adoc └── http-response.adoc
默認情況下,snippets是Asciidoctor格式的文件,包括request和reponse,另外其他兩種httpie和curl兩種流行的命令行的http請求模式。
到目前為止,只生成了Snippets文件,需要用Snippets文件生成文檔。
怎么用Snippets創建一個新文件src/main/asciidoc/index.adoc :
用 Spring REST Docs 構建文檔
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[]
這個例子非常簡單,通過單元測試和一些簡單的配置就能夠得到api文檔了。
adoc的書寫格式,參考: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
這時只需要通過mvnw package命令就可以生成文檔了。
在/target/generated-docs下有個index.html,打開這個html,顯示如下,界面還算簡潔:
通過單元測試,生存adoc文件,再用adoc文件生存html,只需要簡單的幾步就可以生成一個api文檔的html文件,這個html文件你可以通網站發布出去。整個過程很簡單,對代碼無任何影響。
源碼下載:https://github.com/forezp/Spr...
參考資料restdocs
http://docs.spring.io/spring-...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70370.html
摘要:特點具備相當的好的靈活性,不僅能夠使用來定義緩存的和各種,還提供開箱即用的緩存臨時存儲方案,也支持和主流的專業緩存例如的集成。其中號代表這是一個表達式,此表達式可以遍歷方法的參數對象,具體語法可以參考的相關文檔手冊。 SpringBoot 是為了簡化 Spring 應用的創建、運行、調試、部署等一系列問題而誕生的產物,自動裝配的特性讓我們可以更好的關注業務本身而不是外部的XML配置,...
摘要:特點具備相當的好的靈活性,不僅能夠使用來定義緩存的和各種,還提供開箱即用的緩存臨時存儲方案,也支持和主流的專業緩存例如的集成。其中號代表這是一個表達式,此表達式可以遍歷方法的參數對象,具體語法可以參考的相關文檔手冊。 SpringBoot 是為了簡化 Spring 應用的創建、運行、調試、部署等一系列問題而誕生的產物,自動裝配的特性讓我們可以更好的關注業務本身而不是外部的XML配置,...
摘要:沒錯,不支持,從導出的文檔也可以看到,部分中文無法顯示,目前我也尚未找到是否有配置可以實現這個功能。相對前面的方式,使用起來更加簡單,也可以修改配置輸出中文。 更多精彩博文,歡迎訪問我的個人博客 說明 我個人是一直使用Swagger作為接口文檔的說明的。但是由于在一些情況下,接口文檔說明需要以文件的形式交付出去,如果再重新寫一份文檔難免有些麻煩。于是在網上看到了Swagger2Mar...
摘要:導讀在團隊協作的時候許多時候需要用到接口文檔,我們通常通過手工編寫大量重復格式的文檔,讓我想起了程序員最討厭的兩件事沒有文檔,編寫文檔。對應的資料可自行谷歌。關于和官網是這樣描述的。我們可以理解為為基于構建的自動生成文檔。 導讀: 在團隊協作的時候許多時候需要用到接口文檔,我們通常通過手工編寫大量重復格式的文檔,讓我想起了程序員最討厭的兩件事:沒有文檔,編寫文檔。哈哈,如果使用過swa...
閱讀 3274·2023-04-25 18:03
閱讀 1143·2021-11-15 11:38
閱讀 5522·2021-10-25 09:45
閱讀 840·2021-09-24 09:48
閱讀 2272·2021-09-22 15:34
閱讀 1734·2019-08-30 15:44
閱讀 2675·2019-08-30 13:12
閱讀 604·2019-08-29 16:05