如何使用 Spring 自我描述 REST api?

问题描述 投票:0回答:3

我正在使用

spring-mvc
创建 servlet,例如:

@RestController
public class MyServlet {
   @GetMapping("/test")
   public MyRsp test(MyReq req) {
         //...
   }
}

现在,如果用户访问我的应用程序的根目录

localhost:8080/my-app
,它应该显示可用的
GET
POST
方法的列表。最多有可能的输入参数、可接受的标头等。

问题:任何 Spring 框架都可以实现这一点吗,比如

HATEOAS

我希望框架能够自动检测任何

@RestController
和包含的方法。

或者我必须自己创建该概述页面吗?

java spring spring-mvc spring-hateoas
3个回答
4
投票

你应该调查一下这个

在spring中集成可以参考this

Swagger 是公开 RESTful API 的最佳框架之一。


3
投票

Swagger 2 是另一种选择。阅读以下内容以了解有关 swagger 以及如何设置的更多信息。

使用 Spring REST API 设置 Swagger 2

您还可以为其余 api 创建 swagger 定义,客户端可以使用它来生成客户端类。

swagger ui 也可用于测试/调用您的 API。 swagger 提供了一个用户界面,您可以在其中输入所有 api 输入,例如查询参数、路径参数、请求正文、标头。

Swagger UI 示例


2
投票

您可以查看这个项目Spring Restdocsgithub),它允许您生成随时可用的REST文档。由Spring团队官方维护:

该项目的主要目标是使记录变得容易 通过组合使用手写内容来提供 RESTful 服务 Asciidoctor 具有使用 Spring MVC 生成的自动生成示例 测试框架。结果旨在使用户易于阅读 指南,例如类似于 GitHub 的 API 文档,而不是 由诸如以下工具生成的完全自动化、密集的 API 文档 大摇大摆.

另一个选择是使用Swagger,它也支持自下而上的方法:

自下而上的方法,您有一个现有的 REST API,您可以使用它 想要创建一个 Swagger 定义。要么你创建定义 手动(使用上面提到的相同的 Swagger 编辑器),或者如果您 正在使用受支持的框架之一(JAX-RS、node.js 等),您 可以自动为您生成 Swagger 定义。

这里提到了一些招摇的例子:12

© www.soinside.com 2019 - 2024. All rights reserved.