hateoas相关内容

REST API - DTO 与否?

我目前正在为一个项目创建 REST-API,并且一直在阅读有关最佳实践的文章.许多人似乎反对 DTO,只是简单地公开域模型,而其他人似乎认为 DTO(或用户模型或任何你想称呼的)是不好的做法.就个人而言,我认为这篇文章很有道理. 然而,我也理解 DTO 的缺点,包括所有额外的映射代码、可能与其 DTO 对应物 100% 相同的域模型等等. 我们的 API 主要是为了其他客户端可以使用数 ..
发布时间:2021-11-25 14:19:36 Java开发

HATEOAS 和链接/操作

我正在努力思考如何(以及是否要)在我的 api 中实现 HATEOAS.我喜欢只为客户提供适合当前情况的行动的概念之一.但是我不确定我是否正确地实施了这个想法. 假设我有一个资源类型order,其状态可以更改,它可以有不同的状态(processing、accepted、拒绝、过期、成功).然后我应该创建以下 json 对象: {...“链接":{"accept": "http://exam ..
发布时间:2021-11-15 21:04:02 其他开发

如何处理 RESTful API 中的敏感属性(例如密码、信用卡等)

致力于支持多种超媒体类型和身份验证的 REST 框架.我不确定如何处理的一件事是资源中的敏感值.例如,如果我要在 API 中包含用户管理,我需要一种向客户端公开密码字段的方法,但不显示实际的密码哈希.信用卡也是一样.如果我不这样做,它将违反超媒体约束,因为该领域的知识将变得带外,并使我的 HATEOAS 损坏. 这是我遇到的一个实际用例: 该项目是一个展示他们的人员目录,以便其他人可以 ..
发布时间:2021-11-15 21:01:05 其他开发

链接到 REST API 中的另一个资源:通过其 ID 还是通过其 URL?

我正在使用 apiary 创建一些 API,所以使用的语言是 JSON. 假设我需要代表这个资源: {“身份证":9,“名称":“测试",“customer_id":12,“用户 ID":1,“store_id":3,"notes" : "Lorem ipsum 示例长文本"} 通过 ID(12、1、3)引用其他资源是否正确,或者我应该指定这些资源(即/customers/12、/use ..
发布时间:2021-11-15 21:00:50 其他开发

REST API:单个 API 是否应该承担多项职责?

我们有分类商品网站,我们没有登录但用户可以查看其他用户列出的产品.要查看其他用户的详细信息,他们必须提供他们的联系方式.为了验证用户是否提供了正确的手机号码,我们将 OTP 代码发送回该号码.API 流程如下所示: //当用户填写表单以获取特定股票的卖家详细信息时将触发 API(这需要“stockId"和“mobile"作为输入): POST/api/lead/ {“stockId" ..
发布时间:2021-11-15 03:32:38 其他开发

REST api:根据身份验证识别不同的资源和内容

我正在按照 HATEOAS/REST 原则设计 API.但我不确定这个基本点:资源识别. 假设这个网址:/images它公开了用户上传的所有图像(给这个用户). 假设我使用 oauth 访问令牌进行身份验证,/images 的内容将根据 Authorization 标头而有所不同. 这是否打破了资源概念的识别? 解决方案 没有.资源不必是静态的才能保持宁静.想象一个提供时 ..
发布时间:2021-11-15 02:51:25 其他开发

为什么大多数 API 分页不依赖于 HTTP Range 标头?

我已经搜索了很多,但我找不到这个问题的好答案.作为 HATEOAS 爱好者,我认为这个标题非常适合: 范围:item=1-20/100 在 HTTP 规范中,我不明白一些“矛盾":范围单位可以接受“other-range-unit"... 范围单位 = 字节单位 |其他范围单位字节单位=“字节"其他范围单位 = 令牌 ...但规范是后来明确的: HTTP/1.1 定义的唯一范围单 ..
发布时间:2021-11-15 02:22:23 其他开发

链接到 REST API 中的另一个资源:通过其 ID 还是通过其 URL?

我正在使用 apiary 创建一些 API,所以使用的语言是 JSON. 假设我需要代表这个资源: {“身份证":9,“名称":“测试",“customer_id":12,“用户 ID":1,“store_id":3,"notes" : "Lorem ipsum 示例长文本"} 通过 ID(12、1、3)引用其他资源是否正确,或者我应该指定这些资源(即/customers/12、/use ..
发布时间:2021-11-15 02:21:26 其他开发

HATEOAS(REST 架构)的实际示例

正如每个人可能已经注意到的那样,在野外有很多假的/基本的 REST-API(它们实现了一个 HTTP-API 并将其称为 REST,而不遵循超文本作为应用程序状态的引擎要求),这导致了 Roy T. Fielding 的著名咆哮,第一个指定 REST 范式的人). 我一直无法找到真正超文本驱动的 REST 实现的任何实际示例,以及用于状态转换的关联的特定于应用程序的媒体类型定义. 是否 ..
发布时间:2021-11-15 00:41:39 其他开发

如何通过 HATEOAS 链接访问 REST 集合的一个元素?

我正在尝试使用 Java Spring 构建 RESTful 服务架构,并为所有这些服务构建网关服务.为了实现后者,我需要为其他服务实现一个客户端,我和我的同事试图围绕 HATEOAS 原则设计,通过 spring-hateoas 模块提供相关资源的链接. 假设我有一个在本地主机上运行的服务,侦听 8080 端口,它通过 /resources 上的 GET 操作返回资源集合.例如: {“_ ..
发布时间:2021-07-09 19:44:58 其他开发

REST API - 如何查询链接发现?

假设我有一个 RESTful HATEOAS API,它有 /posts 端点,它列出了带有查询快捷方式 /posts/new 的帖子.如何查询 API 以发现 /posts/new? 我的想法: 1) 查询 /posts 并从 _links 属性获取链接(并且列出的实体是必要的开销): GET/posts{“文档":[...]“_links":{"new": { "rel": "p ..
发布时间:2021-07-09 19:38:33 其他开发

REST API:单个 API 是否应该承担多项职责?

我们有分类商品网站,我们没有登录但用户可以查看其他用户列出的产品.要查看其他用户的详细信息,他们必须提供他们的联系方式.为了验证用户是否提供了正确的手机号码,我们将 OTP 代码发送回该号码.API 流程如下所示: 1)//当用户填写表单以获取特定股票的卖家详细信息时将触发 API(这需要“stockId"和“mobile"作为输入): POST/api/lead/{“股票编号":123, ..
发布时间:2021-07-09 19:35:44 其他开发

自链接在超媒体 API 中的重要性是什么?

我在 REST 上阅读的所有文章和书籍都重复了在超媒体响应中添加“自我"rel 链接的重要性,但它们都对原因和用例进行了阐述. 为什么要添加自链接,它有什么用处? 解决方案 主要原因是客户端(甚至一些服务器)不将表示的位置与表示一起存储.例如,如果您 wget http://.../foo.json,则表示将保存到磁盘,但获取它的 URI 不会.如果表示中没有嵌入“self"链接,这 ..
发布时间:2021-07-09 19:23:31 其他开发

Spring Data Rest - _links

编辑 14/08/14 13:29 我的下一个结论是,我的@RepositoryRestResource CrudRepository 生成的 hal+json 格式不正确. 教程(http://spring.io/guides/gs/accessing-data-rest/) 将超媒体 Rest JPA 实体的输出显示为:(请注意没有“rel"元素,并且“links"不是数组) { ..
发布时间:2021-07-09 19:21:20 其他开发

如何实现 RESTful 进度指示器?

我希望我的 API 是 RESTful 假设我已经使用 POST 启动了一个长时间运行的任务,现在想要了解进度? 执行此操作的惯用 REST 方法是什么? 每 10 秒用 GET 轮询一次? 解决方案 对您的回复 POST/new/long/running/task 应该包含一个 Location 标头.该标头将指向客户端可以点击以找出任务状态的端点.我建议您的回复类 ..
发布时间:2021-07-09 19:20:10 其他开发