在我的RESTful API中,所有资源都在扩展Spring的ResourceSupport库,以确保设计中的hateoas主体。例如:
public class PoolResource extends ResourceSupport {
private String name;
...
}
我也在使用Swagger,我想知道:是否有可能以某种方式配置swagger-ui,忽略来自ResourceSupport的属性?
(Swagger-ui提供了一个很好且简单的API前端。作为使用Swagger的主要好处之一,API易于理解,并为那些甚至不熟悉REST API的人使用API。只要“链接”和“相关”进入图片。)
我建议扔掉招摇,并使用像Postman这样的休息客户。 Postman使spring-hateoas提供的链接可以点击,因此您可以很快地浏览API。如果要提供一些其他信息/文档,可以将这些请求保存到Postman中的请求集合中并将其导出以进行分发。在我为rest apis尝试了几个文档工具之后,包括raml,swagger,apiary以及最后的postman-collections与hateaos的组合,我发现后者是我最满意的。
使用Spring Data REST 2.4.0.RELEASE,您现在可以使用多种形式的元数据:
隐藏它的唯一合理方法是将其隐藏在模型本身之外(有几种方法可以做到这一点,但如果使用Spring MVC,我不确定swagger-springmvc支持什么)。
你理论上可以破解swagger.js来隐藏它,但这是一个完整的冒险。
Spring RestDocs是以hyermedia为基础构建的。它可以在“生成的文档”领域中提供与swagger相同的好处,但不是基于URL的。
努力输出更符合githubs文档的东西(Hyermedia'd)。
任何人看起来都是HAL浏览器
http://api.opensupporter.org/hb2/browser.html#/api/v1
它有助于可视化资源之间的关系网,因此不一定显示资源的请求示例,但确实有显示文档的区域。
我的想法是,在某种程度上,让Hateos实现自我记录是一种更简单的方法。也许其中一个超媒体链接可能是一个昂首阔步的网站或可接受的值可能在我上面提到的文档中。
不要延长ResourceSupport
。相反,对于输入模型使用POJO Pool
,并为响应使用org.springframework.hateoas.Resource(s)<Pool>
包装您的POJO并允许定义链接。