设计API的服务发现

时间:2014-07-18 19:24:17

标签: java json api annotations hateoas

我正在开发一个相当大的API(390多个函数),我正在尝试将文档团队需要的所有信息汇集在一起​​,以便为项目创建文档。

我决定使用JSON Hyperschema来表示这一点。

我创建了一个注释处理器,用于从我的代码中查找所有javax.ws.rs.Path注释,并获取Javadoc,http方法(来自注释)和其他参数信息,但我遇到了问题。

超级架构建议,并且我的项目规范要求,通过API发送的对象将作为架构包含在超级架构中。通常我会用杰克逊来完成这个。但是,由于我在一个不在主API项目中的注释处理器中,我不能使用类引用(例如User.class,其中user是我的API项目中的对象而不是我的处理器中)而不会产生错误。 (这解释为here)。

我的问题是,围绕此限制的最佳方法是什么?我已经提出了一种方法,如下所述,但我希望这可以插入任何其他服务(格式相同)来记录它们。

作为解决方案,我曾想过在编译时和运行时间之间打破我的生成器。在编译时,我将使用占位符生成JSON超图表以引用对象模式。它还会生成一个包含所有对象全名的资源文件。

在运行时,我计划为返回的对象生成模式,然后将链接插入到JSON中。

恕我直言这个解决方案看起来并不优雅"。有没有人对其他方法有所了解?

1 个答案:

答案 0 :(得分:0)

我建议以下项目: -

jsonschema-hypermedia-support确认enter link description here

OR 使用Spring HATEOAS 另见 this stackoveflow thread about Restful API