Swagger和RESTful spring hateoas资源

时间:2015-01-21 13:26:19

标签: rest swagger swagger-ui spring-hateoas

在我的RESTful API中,所有资源都在扩展Spring的ResourceSupport基础,以便通过设计确保hateoas主体。例如:

public class PoolResource extends ResourceSupport {
    private String name;
    ...
}

我也使用Swagger,我想知道:是否有可能以某种方式配置swagger-ui,忽略来自ResourceSupport的属性?

enter image description here

(Swagger-ui提供了一个很好且简单的API前端。作为使用Swagger的主要好处之一,API易于理解并为那些甚至不熟悉REST的人使用API API ...只要"链接"和#34; rels"进入图片。)

6 个答案:

答案 0 :(得分:8)

我建议扔掉招摇,并使用像Postman这样的restclient。 Postman使spring-hateoas提供的链接可以点击,因此您可以很快地浏览API。如果要提供一些其他信息/文档,可以将这些请求保存到Postman中的请求集合中并将其导出以进行分发。 在我为rest apis尝试了几个文档工具之后,包括raml,swagger,apiary以及最后的postman-collections与hateaos的组合,我发现后者是我最满意的。

答案 1 :(得分:1)

使用Spring Data REST 2.4.0.RELEASE,您现在可以使用多种形式的元数据:

  • ALPS
  • JSON Schema
  • 通过spring-data-rest-hal-browser模块安装HAL浏览器并通过超媒体浏览

答案 2 :(得分:0)

隐藏它的唯一合理方法是将其隐藏在模型本身之外(有几种方法可以做到这一点,但如果使用Spring MVC,我不确定swagger-springmvc支持什么)。

理论上你可以破解swagger.js来隐藏它,但那是一次冒险。

答案 3 :(得分:0)

Spring RestDocs是在考虑到hyermedia的情况下构建的。它可以提供与“生成的文档”中的招摇相同的好处。领域,但不是基于URL。

http://docs.spring.io/spring-restdocs/docs/current/reference/html5/#getting-started-build-configuration

努力输出更符合githubs文档的内容(Hyermedia' d)。

https://developer.github.com/v3/#current-version

答案 4 :(得分:0)

任何人都看过HAL Browser

http://api.opensupporter.org/hb2/browser.html#/api/v1

它有助于可视化资源之间的关系网,因此不一定显示资源的请求示例,但确实有显示文档的区域。

我的想法是,在某种程度上,让Hateos实现自我记录是一种更简单的方法。也许其中一个超媒体链接可能是一个昂首阔步的网站或 可接受的值可以在我上面提到的文档中。

答案 5 :(得分:0)

请勿扩展ResourceSupport。相反,对于输入模型,请使用POJO Pool;对于响应模型,请使用org.springframework.hateoas.Resource(s)<Pool>,它包装了您的POJO并允许定义链接。