亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

RdouTyping / 2233人閱讀

摘要:建一個(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 Map greeting() {
        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)潔:

結(jié)語(yǔ)

通過(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

相關(guān)文章

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

    摘要:特點(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配置,...

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

    摘要:特點(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配置,...

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

    摘要:沒(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...

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

    摘要:導(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...

    曹金海 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<