我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何用spring Restdocs创建API文档

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何用spring Restdocs创建API文档

本篇文章为大家展示了如何用spring Restdocs创建API文档,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

准备工作

  • 你需要15min

  • Jdk 1.8

  • maven 3.0+

  • idea

创建工程

引入依赖,其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

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

在springboot通常创建一个controller:

@RestControllerpublic class HomeController {    @GetMapping("/")    public Map<String, Object> greeting() {        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

创建一个新文件class="lazy" data-src/main/asciidoc/index.adoc :

= 用 Spring REST Docs 构建文档This is an example output for a service running at http://localhost:8080:.requestinclude::{snippets}/home/http-request.adoc[].responseinclude::{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,显示如下,界面还算简洁:

通过单元测试,生存adoc文件,再用adoc文件生存html,只需要简单的几步就可以生成一个api文档的html文件,这个html文件你可以通网站发布出去。整个过程很简单,对代码无任何影响。

源码下载:https://github.com/forezp/SpringBootLearning

上述内容就是如何用spring Restdocs创建API文档,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何用spring Restdocs创建API文档

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何用spring Restdocs创建API文档

本篇文章为大家展示了如何用spring Restdocs创建API文档,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。准备工作你需要15minJdk 1.8maven 3.0+idea创建工程引入依赖
2023-06-19

详解如何用spring Restdocs创建API文档

这篇文章将带你了解如何用spring官方推荐的restdoc去生成api文档。本文创建一个简单的springboot工程,将http接口通过Api文档暴露出来。只需要通过 JUnit单元测试和Spring的MockMVC就可以生成文档。准备
2023-05-31

PHP 函数如何创建文档?

在 php 中创建文档的方法:使用 dom_create_document() 创建新 xml 文档对象。使用 dom_create_element() 创建新 xml 元素对象。使用 dom_append_child() 将元素附加到文档
PHP 函数如何创建文档?
2024-04-18

如何使用 Golang 构建 RESTful API 并使用 Swagger 文档?

使用 go 构建 restful api 并在 swagger 文档中提供可读端点描述。创建 go 模块并使用 gin 框架。添加 swagger 文档以生成 api 文档。定义端点,例如“创建用户”,并相应编写 swagger 定义。使用
如何使用 Golang 构建 RESTful API 并使用 Swagger 文档?
2024-05-15

win7无法创建word文档如何解决

这篇文章主要介绍了win7无法创建word文档如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win7无法创建word文档如何解决文章都会有所收获,下面我们一起来看看吧。解决方法:1、按win+r进入运行
2023-06-28

如何创建 PHP 函数的文档说明?

如何创建 php 函数的文档说明:使用 @ 符号后跟魔术方法。添加 @param 魔术方法描述参数。添加 @return 魔术方法描述返回值。如何创建 PHP 函数的文档说明在 PHP 中,通过使用 @ 符号创建函数文档说明。该符号后跟一
如何创建 PHP 函数的文档说明?
2024-04-17

如何使用 PHP 创建 REST API

使用 php 创建 rest api 涉及以下步骤:安装 php 和 restful api 框架。创建 api 路由以处理 http 请求。定义控制器及其方法来处理路由请求。格式化 api 响应,包括状态代码和 json 数据。通过实战案
如何使用 PHP 创建 REST API
2024-05-01

PHP 函数文档最佳实践:如何创建清晰且有用的文档

php 函数文档最佳实践包括:文件注释:包含函数名称、描述、参数、返回值和异常。内联文档:使用注释块提供特定代码行、参数、副作用和最佳实践的详细信息。使用 phpdoc 或 doxygen 自动生成文件注释。定期维护文档以反映函数更改,确保
PHP 函数文档最佳实践:如何创建清晰且有用的文档
2024-04-11

VB.NET如何实现Word文档创建Document对象

这篇文章主要介绍了VB.NET如何实现Word文档创建Document对象,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。VB.NET Word文档的创建1、Visual Ba
2023-06-17

如何创建 PHP 函数库并将其文档化?

创建 php 函数库涉及定义函数并将其组织到命名空间中。文档化使用 docblocks 添加注释,然后使用工具将其转换为可访问的文档。例如,一个用于计算几何形状区域的函数库包含计算圆面积和正方形面积的函数,并使用 docblocks 记录每
如何创建 PHP 函数库并将其文档化?
2024-04-27

如何在Linux中创建和管理归档文件

本篇文章为大家展示了如何在Linux中创建和管理归档文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。归档文件是包含一系列文件和/或目录的单个文件。归档通常用于本地或互联网传输,或作为一系列文件和目
2023-06-28

如何创建 PHP 函数库并将其文档化?

创建 php 函数库涉及定义函数并将其组织到命名空间中。文档化使用 docblocks 添加注释,然后使用工具将其转换为可访问的文档。例如,一个用于计算几何形状区域的函数库包含计算圆面积和正方形面积的函数,并使用 docblocks 记录每
如何创建 PHP 函数库并将其文档化?
2024-04-27

如何使用IDEA2022.1 创建Spring Boot项目

这篇文章主要介绍了如何使用IDEA2022.1 创建Spring Boot项目,大家在使用idea开发工具时发现给以往的版本略微的不同,细心的小编在此记录下,需要的朋友可以参考下
2022-11-13

学习如何使用PHP创建GraphQL API:构建API接口的步骤

GraphQL是一个用于API的查询语言,它可以让客户端精确地查询数据,避免浪费网络带宽和服务器资源。在本文中,我们将讨论如何使用PHP创建GraphQL API。GraphQL API的工作原理GraphQL API是基于查询语言的。
学习如何使用PHP创建GraphQL API:构建API接口的步骤
2024-01-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录