hypermedia相关内容
我一直在尝试扩展 Jersey 1.12 文档第 6 章(声明性超链接)中提供的示例,但在使用 @Ref 注释方面似乎遇到了困难. 我的代码如下: @Path("/offerings/{offeringId}/widgets")@Produces(MediaType.APPLICATION_JSON)公共类 WidgetsResource {@得到@Path("/{widgetId}")公
..
我正在努力思考如何(以及是否要)在我的 api 中实现 HATEOAS.我喜欢只为客户提供适合当前情况的行动的概念之一.但是我不确定我是否正确地实施了这个想法. 假设我有一个资源类型order,其状态可以更改,它可以有不同的状态(processing、accepted、拒绝、过期、成功).然后我应该创建以下 json 对象: {...“链接":{"accept": "http://exam
..
我一直在尝试扩展 Jersey 1.12 文档第 6 章(声明性超链接)中提供的示例,但似乎在使用 @Ref 注释方面遇到了障碍. 我的代码如下: @Path("/offerings/{offeringId}/widgets")@Produces(MediaType.APPLICATION_JSON)公共类 WidgetsResource {@得到@Path("/{widgetId}")公
..
我正在构建一个 RESTful API,使用 spring-hateoas 库来实现超媒体.我的端点的响应是 application/hal+json(我的 DTO 扩展了 ResourceSupport). 我使用 Swagger 来记录端点,并使用 Springfox 自动生成 swagger-ui. 问题是,生成的文档不正确. 作为对 POST 端点的请求,UI 将我的 D
..
我在 REST 上阅读的所有文章和书籍都重复了在超媒体响应中添加“自我"rel 链接的重要性,但它们都对原因和用例进行了阐述. 为什么要添加自链接,它有什么用处? 解决方案 主要原因是客户端(甚至一些服务器)不将表示的位置与表示一起存储.例如,如果您 wget http://.../foo.json,则表示将保存到磁盘,但获取它的 URI 不会.如果表示中没有嵌入“self"链接,这
..
想象一个 REST 端点 (/employees) 以 JSON HAL 格式为员工页面提供服务.一名员工居住在一个国家,该国家位于一个大陆. 对于国家和大洲,也有单独的端点. 返回的页面包含典型的 _embedded 字段和员工数据.员工资源还包含嵌套的 country 资源.这个嵌套的 country 资源还包含 _links. 在这种情况下,输出将是: GET/emplo
..
假设我有一个现有的应用程序,它有两个端点/people 和/pants.调用 GET/people 返回: [{"name":"约翰",“年龄":37,“裤子":[{"颜色":"绿色","品牌":"李维斯",“尺寸":“中等"},{"颜色":"靛蓝","品牌":"jncos","size":"中等大腿"}]},{"name":"六月",“年龄":23,“裤子":[{"颜色":"粉红色","品牌"
..
为资源上的 POST / PUT / PATCH 表示HATEOAS链接的最佳方法是什么?这些操作具有有效负载,但是我们没有选择在HATEOAS链接中表示有效负载的选项,因为它们不是预先确定的,而且可能很重.那么仅指定终点并指定操作就足够了吗? 对于使用HATEOAS POST / PUT / PATCH 链接的JSON响应,任何示例或示例都将不胜感激. 解决方案 链接由两个元素组成
..
我正在使用 spring-data 作为其数据访问层开发RESTful网络服务,由JPA/Hibernate支持. 域实体之间具有关系是很常见的.例如,假设一个实体Product具有 一个Category实体. 现在,当客户端POST是JAX-RS方法的Product表示形式时.该方法用@Transactional注释,以将每个存储库操作包装在事务中.当然,客户端只发送已经存在的Catego
..
我目前正在阅读“最佳实践”一书。我无法理解以下术语“超媒体”,“超媒体格式”,“超媒体控件”,“域应用程序协议”。作者建议需要特定于域的超媒体格式。我很难理解。我用谷歌搜索了这些术语,但是找不到正确的答案。谁能解释这些术语以及为什么我们需要特定于域的超媒体格式而不是application / xml? 解决方案 Hypermedia =客户端服务器和服务器根据某种统一的表示进行交谈,例如:
..
我正在努力解决如何(以及是否要)在我的api中实现HATEOAS.我喜欢这样一种概念:仅向客户提供在当前情况下适当的操作.但是我不确定我是否正确实现了这个想法. 假设我有一个资源类型 order ,其状态可以更改,它可以具有不同的状态(处理,接受, 拒绝,过期,成功).然后,我应该创建以下json对象吗? { ... "links": { "accept
..
几天来我一直在阅读“真正的" RESTful API,我认为,我快要了解它的含义了. 但是我偶然发现的一件事是,我什至无法开始想象人们将如何为“真正的"超媒体API编写客户端: 我阅读的大多数示例都涉及浏览器和蜘蛛,但这并不是特别有用:一个是人为导向的“智能",另一个是愚蠢的“随机"的.就目前而言,我给人的印象是,您需要学习AI才能使客户正常工作. 我不清楚的一件事是,客户如何知
..
我本来要公开在实体中用@Id注释的主键.ID字段仅在资源路径上可见,而在JSON正文上不可见. 解决方案 您可以在实体级别使用RepositoryRestConfigurerAdapter进行配置. @Configuration public class ExposeEntityIdRestConfiguration extends RepositoryRestConfigurerA
..
我现在正在使用REST,并认为我正确实现了 HATEOAS 只是为了使所有概念正确. > 为此,我想创建自己的媒体类型(application/vnd[...]+xml和application/vnd[...]+json). 第一个问题:媒体类型是否定义了服务器与客户端之间的合同? 媒体类型将定义我的消息格式,因此我需要添加XML模式和JSON模式以与新的媒体类型一起使用(以便RE
..
根据 HAL标准(请参见此处和此处)应将指向其他资源的链接放在特定的嵌入式部分中. 例如,这不是有效的HAL,我的理解正确吗? { "movies": [ { "id": "123", "title": "Movie title 1", "_links": { "subtitles": {
..
编排微服务的标准模式是什么? 如果微服务只知道自己的域,但是有一个数据流需要多个服务交互在某种程度上,它的方法是什么? 假设我们有类似的东西: 发票 货件 并且为了参数的缘故,假设订单一旦发货,就应该创建发票。 在某个地方,有人按下GUI中的按钮,“我已经完成了,让我们这样做!” 在一个经典的整体服务架构中,我会说有一个ESB处理这个,或者发货服务知道发票服务,只
..
我正处于规划REST API的早期阶段,我希望它遵守REST的HATEOAS约束。但我也想提供一个JSON格式。所以我的问题是,是否有约定用于表示JSON中的链接和表单。 我找到了链接的例子,看起来这是一种很常见的方式代表链接: “links”:[ {“rel”:“self”,“href”: “http://example.org/entity/1”}, {“rel”:“frien
..
我很好奇,想知道其他人如何处理产生对他们的网络API的超媒体链接的问题?具体来说,我使用的ASP.NET Web API,和我有业务之间徘徊回报超媒体相关的类型,或返回资源本身,并且具有超媒体的东西在管道后发生。 也就是说,做的人往往会做这样的事情: 公共资源<排序> GetOrder(INT ID){ 返回新的资源与LT;排序>(){ 内容=新订单()
..
我在为一个RESTful API设计定制媒体类型的过程,已经研究的类型和一些对“标准”的链接关系,语义给我设计了一些转向。 为了说明问题,让我们说,我有我可以执行标准读,变化的资源,删除和我使用GET的HTTP成语,PUT方法和DELETE语句来实现这些方法。 我可以合理地(重新)使用“编辑”链接关系(从的 IANA链接注册)如 RFC5023定义其中规定: “...的价值”编辑“指定h
..
我一直试图在泽西1.12文档中的第6章(超级链接声明)中提供的例子来扩张,但似乎已经撞墙了关于使用@Ref注释。 我的code是如下: @Path(“/产品/ {} offeringId /部件”) @Produces(MediaType.APPLICATION_JSON) 公共类WidgetsResource { @得到 @Path(“/ {为widgetid}”) 市民反应的
..