使用 Atom 的 Jersey 超媒体
每本有关 REST 的书籍都使用
来定义 RESTful 应用程序中的超媒体;但 Jersey(使用 JAXB)似乎没有这种支持。
我已经在 package-info.java @XmlSchema “nofollow noreferrer”>如此处所述;我还尝试扩展NamespacePrefixMapper
正如那里所解释的。但没有一个可以工作并最多输出这个:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer xmlns:ns2="http://www.w3.org/2005/Atom">
<first-name>Roland</first-name>
<ns2:link href="/customer/1" rel="self" />
</customer>
使用命名空间,因此使用 Atom,在 Jersey 中似乎是不可能的。我错过了什么吗?
ps。我使用 XSD 生成 @XmlElement
类,并且目前我创建自己的 Link 类。是否有架构或 JAR 可以做到这一点(jersey-atom
maven 依赖项使用 rome
但没有任何帮助)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
(假设您不关心名称空间前缀而只想创建链接)
这是我创建链接的方法。在我的资源类(球衣休息服务)中,我返回一个 java 对象(位于“Person”下方),该对象的类用 jaxb 注释进行修饰。属性之一返回原子链接对象。
在返回我的对象(“人”)之前,我填写链接,创建自链接和指向其他相关链接的链接。我利用 jersey 注入的 uriInfo 对象来获取基本 url。如果这有帮助,但您想要更多示例,请告诉我,我将填补空白。
(Assuming that you are not concerned with the namespace prefix and just want to create the links)
Here is my approach to creating the links. In my resource class (the jersey rest service), I return a java object (below "Person"), whose class is decorated with jaxb annotations. One of the properties returns atom link objects.
Prior to returning my object ("Person") I fill in the links, creating a self link and links to other related links. I utilize the uriInfo object that jersey injects to get the base url. If this is helpful but you would like more of the example, let me know and I will fill in the gaps.
如果我是对的,泽西岛有一种方法可以将链接注入到对象中。
请参阅:Jersey 2.9 用户指南第 6 章。
If I am right there is an approach in Jersey to inject the links to the objects.
See: Jersey 2.9 User Guide Chapter 6.