Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java API的服务发现设计_Java_Json_Api_Annotations_Hateoas - Fatal编程技术网

Java API的服务发现设计

Java API的服务发现设计,java,json,api,annotations,hateoas,Java,Json,Api,Annotations,Hateoas,我正在开发一个相当大的API(390+函数),我正在尝试收集文档团队为项目创建文档所需的所有信息 我决定使用JSON Hyperschema来表示这一点 我创建了一个注释处理器,从我的代码中查找所有javax.ws.rs.Path注释,并获取Javadoc、http方法(来自注释)和其他参数信息,但我遇到了一个问题 Hyper schema建议,并且我的项目规范要求,通过API发送的对象作为架构包含在Hyper schema中。通常我会用Jackson来完成这项工作。但是,由于我所在的注释处理器

我正在开发一个相当大的API(390+函数),我正在尝试收集文档团队为项目创建文档所需的所有信息

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

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

Hyper schema建议,并且我的项目规范要求,通过API发送的对象作为架构包含在Hyper schema中。通常我会用Jackson来完成这项工作。但是,由于我所在的注释处理器不在主API项目中,因此我无法使用类引用(例如,
User.class
,其中用户是API项目中的对象,而不是处理器中的对象),而不会生成错误。(对此进行了解释)

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

作为一个解决方案,我曾想过在编译时和运行时中断生成器。在编译时,我将生成带有占位符的JSON hyperschema来引用对象模式。它还将生成一个包含所有对象全名的资源文件

在运行时,我计划为返回的对象生成模式,然后将指向它们的链接插入JSON


我觉得这个解决方案似乎不太“优雅”。有人对实现这一目标的其他方法有什么见解吗?

我推荐以下项目:-

这证实了

或 使用弹簧帽 也看到

您使用的是哪种JAX-RS实现?看看Jersey用来生成WADL()的方法。您可能会发现它很有用。这看起来对阅读资源很有帮助。我想我可能会改为阅读资源处理,但我仍然需要阅读javadoc,它将在那时消失。Jersey团队已经实现了一个doclet,它存储javadoc信息,以便进一步生成WADL。看看: