问题标签 [hypermedia]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
56 浏览

hateoas - 可以有不同的链接指向相同的资源吗?

选项1:

我们总是返回“绝对”链接(没有嵌套)。这样,我们总是为客户提供给定资源的相同链接。

需要吗?(知道它需要在服务器端进行额外的工作)

选项 2:

我们还可以返回“相对”链接,嵌套在返回给客户(这里是员工)的资源下。但是现在客户端可能已经收到了对应于同一资源的2 个不同的链接(“ http://api.com/companies/1 ”和“ http://api.com/employees/4/company ”)。

有没有比另一个更好的选择,为什么?

0 投票
2 回答
6566 浏览

spring - 如何使用 Spring Data Rest 公开 resourceId

我不得不公开在实体中用@Id 注释的主键。ID 字段仅在资源路径上可见,但在 JSON 正文上不可见。

0 投票
0 回答
276 浏览

spring-data-rest - 如何从 SDR 存储库中公开 JSON 超模式?

我在一个小型 SDR POC 项目中工作,我们决定使用 JSON 模式,因为它对我们的目的更有意义,因为我们正在尝试开发一个理解超媒体并动态创建部分视图的客户端,但我m 在使用 JSON 模式查找我的实体的所有超媒体元数据时遇到了麻烦。

这些是我正在使用的实体

当我使用接受标头值作为“application/schema+json”在 /profile/Books 上执行 GET 时:

我收到这个输出:

此 JSON 模式输出没有 Book 实体的所有 CRUD 操作的链接,也没有指向相关实体(如页面或元数据)的链接来定义其属性。

/profile 提供的默认 ALPS 输出 ( https://datatracker.ietf.org/doc/html/draft-amundsen-richardson-foster-alps-01 ) 不够有意义,因为它没有显示所有可能的操作链接实体,也不是特定类型。

/books的 HAL 输出 ( https://datatracker.ietf.org/doc/html/draft-kelly-json-hal-07 ) 描述了所有书籍实例的链接及其与其他实体的交互链接,但没有关于元数据.

在 SDR 中为实体输出 JSON 模式元数据的正确方法是什么?有什么方法可以从 SDR 资源生成 JSON 超模式( https://datatracker.ietf.org/doc/html/draft-luff-json-hyper-schema-00 )?

0 投票
1 回答
2738 浏览

java - 使用 Spring HATEOAS 嵌套在 HAL 中

我正在寻找如何使用 Spring HATEOAS API 对 HAL 中的嵌套 _embedded 进行编程的示例。最佳做法是什么?

这是我想要实现的示例:

0 投票
0 回答
28 浏览

rest - 在支持超媒体的 API 中拥有对先前状态的 Ref

在支持超媒体的 REST API 中,考虑非浏览器客户端需要访问资源 Model-A。通常我们会有一个入口点,然后是一个 ref 来获取模型,然后是另一个 ref 来访问特定的模型。

但是如果在检查收到的模型之后,我们需要返回并检查另一个模型,比如 Model-B 怎么办?在那种情况下,有一个对前一个状态的参考不是更好吗?

例如,以玩具店的 API 为例。首先,我们将获得一个列出所有玩具的根链接。(可能是带有条件的搜索。)通过响应,我们将获得一组玩具表示,其中包含访问它们的链接。

如果我选择,比如说火车,然后想选择其他东西,需要从头开始。

0 投票
1 回答
23 浏览

api - 超媒体 API - 呈现选项列表数据

我正在创建一个符合 HAL 规范的超媒体 api

当用户提交付款时,他们需要指定他们使用的卡类型(Visa、万事达卡等)

因此,对于提交的特定字段,可以使用特定的值列表

我如何向用户展示该选择列表?

作为嵌入式数据?

通常有一种方法可以将字段与给定的数据集相关联吗?

我意识到 HAL 规范非常小,并没有专门涵盖这个问题。但总的来说,超媒体 apis 人们通常如何呈现这些数据?

还是我应该简单地解释 CURIE 链接中的字段?谢谢

0 投票
1 回答
24 浏览

java - 我的 SOA 项目使用哪些工具?

我必须开发一个应该提供支持Hypermedia的REST API的图像服务器。(具有登录、注册、上传和下载图像等基本功能)

我想使用Glassfish作为服务器来开发我的项目,并使用Java作为编程语言。

我该如何开发项目?我认为一个可能的想法是创建不同的 Servlet(即我的网站页面)并插入连接不同 Servlet 的链接(例如登录 Servlet 我可以通过 post 向自身发送信息并检查登录数据,如果这些都可以,它会创建一个会话并向主 Servlet 发送一个 GET 请求)。

以这种方式实施是否正确?有更好的方法来实现这项服务吗?(也许是 JSF)

我在这里问是因为我害怕完全错过目标。

0 投票
1 回答
126 浏览

api - 这个 API 结构 HATEOAS 兼容吗?

我想知道 API 链接的以下结构是否与 HATEOAS 兼容?

特别是我不确定 /create endpoint。它应该在入门级,因为用户可以从那里创建一个组,还是可以将它放在 /groups 中?

你对其余的有什么看法?它也应该与 HAL 兼容。

0 投票
1 回答
1087 浏览

java - 使用 Springfox 在 Swagger UI 中的超媒体链接

我正在构建一个 RESTful API,使用 spring-hateoas 库来实现超媒体。我的端点的响应是 application/hal+json(我的 DTO 扩展了 ResourceSupport)。

我使用 Swagger 记录端点,并使用 Springfox 自动生成 swagger-ui。

问题是,生成的文档不正确。

作为对 POST 端点的请求,UI 将我的 DTO 中的 _links 部分设置为有效负载的一部分,所以这就是我认为应该作为 POST 端点的参数发送的内容:

所以我的问题是:有什么方法可以让 springfox 知道 application/hal+json 作为 Parameter 内容类型?如果没有,有没有办法从请求中隐藏 _links 部分?

0 投票
1 回答
436 浏览

rest - 使用 WebApi.Hal 生成的媒体类型中的链接为空

我正在使用WebApi.Hal从我的项目中生成application/hal+json媒体类型响应。使用WebApi.Hal 2.6.0ASP.Net Web API中概述的以下 nugget 包管理器命令将其安装到项目中

安装包 WebApi.Hal

我使用邮递员创建了一个请求,并收到了以下回复。

在此处输入图像描述

链接是空的。如何获取链接?

全球.asax

控制器和其他类

参考

  1. 用于超媒体的前 20 个 NuGet 包
  2. 流行的 C# HAL 项目