成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

SpringBoot非官方教程 | 第十篇: 用Spring Restdocs創(chuàng)建API文檔

RdouTyping / 2184人閱讀

摘要:建一個單元測試類其中,注解開啟了生成文件,并指定了存放位置。怎么用創(chuàng)建一個新文件用構(gòu)建文檔這個例子非常簡單,通過單元測試和一些簡單的配置就能夠得到文檔了。

準(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
    

通過@SpringBootApplication,開啟springboot

@SpringBootApplication
public class Application {

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

在springboot通常創(chuàng)建一個controller:

@RestController
public class HomeController {

    @GetMapping("/")
    public Map greeting() {
        return Collections.singletonMap("message", "Hello World");
    }

}

啟動工程,訪問localhost:8080,瀏覽器顯示:

{“message”:”Hello World”}

證明接口已經(jīng)寫好了,但是如何通過restdoc生存api文檔呢

Restdoc,通過單元測試生成api文檔

restdocs是通過單元測試生存snippets文件,然后snippets根據(jù)插件生成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文件,并指定了存放位置。

啟動單元測試,測試通過,你會發(fā)現(xiàn)在target文件下生成了一個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請求模式。

到目前為止,只生成了Snippets文件,需要用Snippets文件生成文檔。

怎么用Snippets

創(chuàng)建一個新文件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[]

這個例子非常簡單,通過單元測試和一些簡單的配置就能夠得到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,顯示如下,界面還算簡潔:

結(jié)語

通過單元測試,生存adoc文件,再用adoc文件生存html,只需要簡單的幾步就可以生成一個api文檔的html文件,這個html文件你可以通網(wǎng)站發(fā)布出去。整個過程很簡單,對代碼無任何影響。

源碼下載:https://github.com/forezp/Spr...

參考資料

restdocs

http://docs.spring.io/spring-...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/70370.html

相關(guān)文章

  • 一起來學(xué)SpringBoot | 十篇:使Spring Cache集成Redis

    摘要:特點(diǎn)具備相當(dāng)?shù)暮玫撵`活性,不僅能夠使用來定義緩存的和各種,還提供開箱即用的緩存臨時存儲方案,也支持和主流的專業(yè)緩存例如的集成。其中號代表這是一個表達(dá)式,此表達(dá)式可以遍歷方法的參數(shù)對象,具體語法可以參考的相關(guān)文檔手冊。 SpringBoot 是為了簡化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問題而誕生的產(chǎn)物,自動裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,...

    littleGrow 評論0 收藏0
  • 一起來學(xué)SpringBoot | 十篇:使Spring Cache集成Redis

    摘要:特點(diǎn)具備相當(dāng)?shù)暮玫撵`活性,不僅能夠使用來定義緩存的和各種,還提供開箱即用的緩存臨時存儲方案,也支持和主流的專業(yè)緩存例如的集成。其中號代表這是一個表達(dá)式,此表達(dá)式可以遍歷方法的參數(shù)對象,具體語法可以參考的相關(guān)文檔手冊。 SpringBoot 是為了簡化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問題而誕生的產(chǎn)物,自動裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,...

    shadajin 評論0 收藏0
  • Gradle環(huán)境下導(dǎo)出Swagger為PDF

    摘要:沒錯,不支持,從導(dǎo)出的文檔也可以看到,部分中文無法顯示,目前我也尚未找到是否有配置可以實(shí)現(xiàn)這個功能。相對前面的方式,使用起來更加簡單,也可以修改配置輸出中文。 更多精彩博文,歡迎訪問我的個人博客 說明 我個人是一直使用Swagger作為接口文檔的說明的。但是由于在一些情況下,接口文檔說明需要以文件的形式交付出去,如果再重新寫一份文檔難免有些麻煩。于是在網(wǎng)上看到了Swagger2Mar...

    OnlyMyRailgun 評論0 收藏0
  • Spring Boot [如何優(yōu)雅的編寫文檔]

    摘要:導(dǎo)讀在團(tuán)隊(duì)協(xié)作的時候許多時候需要用到接口文檔,我們通常通過手工編寫大量重復(fù)格式的文檔,讓我想起了程序員最討厭的兩件事沒有文檔,編寫文檔。對應(yīng)的資料可自行谷歌。關(guān)于和官網(wǎng)是這樣描述的。我們可以理解為為基于構(gòu)建的自動生成文檔。 導(dǎo)讀: 在團(tuán)隊(duì)協(xié)作的時候許多時候需要用到接口文檔,我們通常通過手工編寫大量重復(fù)格式的文檔,讓我想起了程序員最討厭的兩件事:沒有文檔,編寫文檔。哈哈,如果使用過swa...

    曹金海 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<