最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解如何用spring Restdocs創(chuàng)建API文檔

 更新時間:2017年05月11日 11:07:47   作者:方志朋  
這篇文章將帶你了解如何用spring官方推薦的restdoc去生成api文檔。具有一定的參考價值,感興趣的小伙伴們可以參考一下

這篇文章將帶你了解如何用spring官方推薦的restdoc去生成api文檔。本文創(chuàng)建一個簡單的springboot工程,將http接口通過Api文檔暴露出來。只需要通過 JUnit單元測試和Spring的MockMVC就可以生成文檔。

準備工作

  1. 你需要15min
  2. Jdk 1.8
  3. maven 3.0+
  4. idea

創(chuàng)建工程

引入依賴,其pom文件:

<dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.springframework.restdocs</groupId>
      <artifactId>spring-restdocs-mockmvc</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

通過@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<String, Object> 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

默認情況下,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-restdocs/docs/current/reference/html5/,這里不多講解。

需要使用asciidoctor-maven-plugin插件,在其pom文件加上:

<plugin>
  <groupId>org.asciidoctor</groupId>
  <artifactId>asciidoctor-maven-plugin</artifactId>
  <executions>
    <execution>
      <id>generate-docs</id>
      <phase>prepare-package</phase>
      <goals>
        <goal>process-asciidoc</goal>
      </goals>
      <configuration>
        <sourceDocumentName>index.adoc</sourceDocumentName>
        <backend>html</backend>
        <attributes>
          <snippets>${project.build.directory}/snippets</snippets>
        </attributes>
      </configuration>
    </execution>
  </executions>
</plugin>

這時只需要通過mvnw package命令就可以生成文檔了。

在/target/generated-docs下有個index.html,打開這個html,顯示如下,界面還算簡潔:

結(jié)語

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

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • java web中使用cookie記住用戶的賬號和密碼

    java web中使用cookie記住用戶的賬號和密碼

    這篇文章主要介紹了java web中使用cookie記住用戶的賬號和密碼的相關資料,需要的朋友可以參考下
    2017-01-01
  • 詳解java中finalize的實現(xiàn)與相應的執(zhí)行過程

    詳解java中finalize的實現(xiàn)與相應的執(zhí)行過程

    在常規(guī)的java書籍中,即會描述 object的finalize方法是用于一些特殊的對象在回收之前再做一些掃尾的工作,但是并沒有說明此是如何實現(xiàn)的.本篇從java的角度(不涉及jvm以及c++),有需要的朋友們可以參考借鑒。
    2016-09-09
  • Java如何獲取HttpServletRequest請求參數(shù)

    Java如何獲取HttpServletRequest請求參數(shù)

    我們常需要接口接收第三方推送的數(shù)據(jù),由于第三方可能不具備開發(fā)能力,我們需要自行解析推送的數(shù)據(jù)格式,通過HttpServletRequest,我們可以解析字符串、JSON、XML以及文件等多種數(shù)據(jù)類型,本文介紹了如何在Java中使用HttpServletRequest獲取請求參數(shù),感興趣的朋友一起看看吧
    2024-11-11
  • Spring Cloud使用Feign實現(xiàn)Form表單提交的示例

    Spring Cloud使用Feign實現(xiàn)Form表單提交的示例

    本篇文章主要介紹了Spring Cloud使用Feign實現(xiàn)Form表單提交的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 在Java代碼中解析html,獲取其中的值方法

    在Java代碼中解析html,獲取其中的值方法

    今天小編就為大家分享一篇在Java代碼中解析html,獲取其中的值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • java中正則表達式實例詳解

    java中正則表達式實例詳解

    這篇文章主要介紹了java中正則表達式實例詳解的相關資料,需要的朋友可以參考下
    2017-04-04
  • Java線程死鎖實例及解決方法

    Java線程死鎖實例及解決方法

    這篇文章主要介紹了Java線程死鎖實例及解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Java基礎異常處理代碼及原理解析

    Java基礎異常處理代碼及原理解析

    這篇文章主要介紹了java基礎異常處理代碼及原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • 詳解SpringBoot容器的生命周期

    詳解SpringBoot容器的生命周期

    在使用SpringBoot進行開發(fā)時,我們經(jīng)常需要對Spring容器的生命周期進行了解和掌握,本文將介紹SpringBoot容器的生命周期,包括容器的創(chuàng)建、初始化、銷毀等過程,并提供相應的代碼示例
    2023-06-06
  • Hystrix?Turbine聚合監(jiān)控的實現(xiàn)詳解

    Hystrix?Turbine聚合監(jiān)控的實現(xiàn)詳解

    微服務架構(gòu)下,?個微服務往往部署多個實例,如果每次只能查看單個實例的監(jiān)控,就需要經(jīng)常切換很不?便,在這樣的場景下,我們可以使??Hystrix?Turbine?進?聚合監(jiān)控,它可以把相關微服務的監(jiān)控數(shù)據(jù)聚合在?起,便于查看
    2022-09-09

最新評論

丘北县| 远安县| 通榆县| 石柱| 南开区| 霸州市| 六安市| 秀山| 恩平市| 措勤县| 钟山县| 河南省| 神农架林区| 阜城县| 大安市| 蓝山县| 綦江县| 烟台市| 泾阳县| 普兰店市| 屏东县| 开封市| 广南县| 微博| 象州县| 丹寨县| 贡嘎县| 拜城县| 五华县| 贵南县| 巩义市| 鄂州市| 英山县| 嘉鱼县| 浦北县| 托克逊县| 城口县| 莒南县| 荔波县| 扎兰屯市| 上饶市|