问题标签 [hateoas]
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.
rest - 我在哪里可以找到实用的 HATEOAS Javascript 客户端示例?
我正在寻找 WOA/HATEOAS 中的具体示例!
我阅读了很多博客,看到了很多关于 HATEOAS 的演示文稿,但从来没有一个例子......
你如何实现客户端?
真的,当您使用 Backbone、AngularJS、Ember、Knockout 制作 HTML5 应用程序时……您如何制作 HATEOAS ?!
例如,在 Backbone 中,如何动态设置模型的“url”属性以从服务器检索资源?
谢谢你们的回复!
此致,
托马斯·庞斯。
json - 使用 HAL 设计 RESTful API - 序列化模型关系
我对 REST 比较陌生,但我一直在做关于 RESTful 应该如何做的功课。现在我正在尝试为与其他模型有关系的模型创建一个实现 JSON+HAL 序列化程序的 RESTful api。
python中的示例模型:
假设我们有一个类别“目录”,其中包含一个子类别“食物”,其中的产品“汉堡”和“热狗”都是相关的。
第一个问题。类别和产品应该是资源,因此它们需要一个 URI,我应该在我的模型中实现一个 uri 字段并将其存储在数据库中还是以某种方式在运行时计算它,多个标识符(URI)呢?
第二个问题。可发现性,在 Hal 格式中,“GET /”和不同的节点应该返回什么以使 api 易于自我发现。
第三个问题。添加为属性、嵌入或链接。示例“获取 /catalog/food”:
第四个问题。返回结构时我应该走多深。示例“获取/目录
rest - 带有 AngularJS 的 HATEOAS 客户端
我想知道是否有任何隐藏在 Angular 中或由某些 3rd 方库公开的功能来轻松创建符合 HATEOAS 的 Restful 客户端。
在后端,我使用 Spring Data/REST 来生成 HATEOAS JSON API。但是,消费它是另一回事。
例如,我有这 3 个实体:
- 公司
{name, address}
- 员工
{firstName, lastName, employer[Company]}
- 活动
{rate, day, employee[Employee], client[Company]}
并请求一个活动(模型中最复杂的实体)会产生如下内容:
我的 API 在 REST(由链接标识的资源)方面进行讨论。例如,一个 Activity 有一个 Employee。我真正想要使用的是:{rate: 456, day: 1366754400000, employee: {firstName:"xxx", lastName:"xxx" ...}}
。
但是,正如您在第一个输出中看到的那样,我的 Activity 仅包含指向员工的链接,而不包含其数据。Angular 或第 3 方库中是否有任何东西可以解析这些链接并嵌入结果数据?
对此有任何意见吗?
提前致谢!
web-services - REST/HATEOAS 微格式/FOAF/Schema 特定领域的混淆
在 RESTful 服务中,您可以这样定义资源链接:
或 JSON-LD 示例:
或 vCard 示例:
rel
属性指向域内免费提供对象的模式/微格式/微数据/RDFa 描述。假设我有一个带有字段名称和主页的用户对象,
在上面的示例中,会
/li>rel="http://mydomain.example.org/user"
更合适,因为它是特定于域的用户,还是我应该从 foaf 使用类似的东西?我对这些 RDFa、微格式、微数据、模式、vcard、hcard、foaf、http : //www.productontology.org/id/、www.schema.org/name、http://rdf.data-vocabulary感到非常困惑.org/#name、json 架构等。何时创建自己的微格式/架构,何时使用在这些不同区域(vCards、hcards、foaf、productontology、schema.org)中定义的公共微格式/架构?我知道 RDFa、微格式等确实是关于数据的公共元数据,但是我在哪里可以找到它们的完整列表以供使用?
如果我要创建自己的 rel like
rel="http://mydomain.example.org/user"
,定义用户对象,我应该如何记录它?有我可以遵循的标准吗?有些地方建议人类可读的发现文档,或者可能是描述合同和版本的那个位置的 JSON/XML 模式?一个建议是使用不同版本的http://mydomain.example.com/v1/user/1234与不同版本的服务规范进行对话,以便现有客户端不会因版本更改而中断。
请帮我找出这种混淆,或者我应该使用的术语,关于微格式、RDF、微数据、模式等。
.net - 如何在.net中遵循休息约束HATEOAS原则
我试图用休息架构创建一个例子。我遵循 3 个约束,但我无法遵循第四个超媒体(hateoas)。我以 json 格式返回。json 不支持正确的链接。
所以为了关注hateoas,我想在json中添加链接吗?所以我想做一些自定义代码来添加链接。是否有任何可用的工具可以创建链接。我找不到任何遵循hateoas的好简单示例。我发现了一些演示文稿,但是在 java..so 中,任何人都可以提供任何链接或示例,这些链接或示例将遵循 .net 中 json 中的 hateoas。提前谢谢
rest - RPC 样式的示例如何以资源为中心的样式建模
几天来,我一直在网上阅读有关 REST 的信息,并且正在为 HATEOAS 的概念而苦苦挣扎。
我认为我正在苦苦挣扎,因为我没有正确理解如何将数据建模为资源和(状态转换?)资源之间的链接。我相信我的问题是我所有的经验都是 OO 和 RPC,我不习惯以资源为中心的方式思考。
获得理解的唯一方法是从我的世界中举一个例子,说出我认为可能看起来像以资源/链接为中心的方式建模的内容,然后将其扔到那里被烧毁。刻录完成后,我至少应该对我不理解的东西有更好的理解。
我的(简化)示例是:
我是一名承包商,例如管道工。我有许多工作分配给我。我可以搜索我的工作,指定简单的参数,例如目标日期范围。我可以开始分配给我的任何工作。当我开始工作时,我可以选择指定开始工作的时间,或者如果我现在开始工作,则将其留空。
如果我以 RPC 方式实现它,我可能会向调用者公开两种方法:
如您所见,我正在考虑对象和操作。
如果我在考虑资源和链接,资源可能是什么?
我的猜测是:
- 承包商:~/contractor/plumbersareus ?
- JobSearch: ~/contractor/plumbersareus/searches/searchidentifier ?
- 工作:~/job/12345 ?
- 出勤:~/job/12345/attendances/attendanceidentifier ?
假设以上任何一项都是正确的(我怀疑它是正确的),“searchidentifier”和“attendanceidentifier”应该是什么?前者在我的 RPC 世界中没有身份;它只是参数。后者将由 DateTime 标识。
链接可能是什么(忽略自我链接)?
- 承包商:~/contractor/plumbersareus/searches ?
- 求职:~/job/12345、~/job/12346 等?
- 工作:~/job/12345/attendances ?
- 出席:?
如果这是一个重复的问题,请接受我的道歉并将其关闭。(我找不到重复,但我可能一直在使用不正确的术语进行搜索。)
rest - REST 超媒体 API - 从无状态客户端导航
一个直截了当的问题:如果我正在构建一个无状态客户端,它在请求之间“更改页面”,我如何正确使用超媒体 API?
当然,关键点是客户端不应该构造 URL。例如,如果我们要获取某种类型的集合(比如说水果),每个集合条目都将具有一个 URL,以链接到 API 中的单个水果资源。伟大的。
然而,在我的客户中,在展示水果列表后,我希望将列表链接到另一个包含水果详细信息的前端页面。这样的详细信息页面当然应该是可收藏的,等等。前端 URL 的精确结构是我意识到的,从哲学上讲,很少关注 - 但它对下面的问题具有实际意义。
那么问题是,在加载水果详细信息页面时,没有当前上下文的客户端如何决定要获取的 API URL?
现在是什么:o?
最初想到的一个解决方案是在集合响应中有一个“项目”URL 模板,并使用其中的命名参数来构造页面 URL。然后详细信息页面将查询 API 以恢复相同的“项目”URL 并植入它传递的参数。这似乎并不理想,但它确实实现了所需的解耦。
提前致谢。
rest - HATEOAS - 如何为改变状态的链接关系建模
遵循 HATEOAS 原则,即每个状态都应该是超链接的,对改变资源状态的链接进行建模的最佳方法是什么?
让我们以订单为例:
我对“/cancel”部分并不完全满意——如果我可以发送带有内容的“ PUT ”请求,我会感觉好多了:
但是我如何在链接部分用“href”属性表示呢?我想在那里表示可用的操作,例如,取消订单并不总是可能的(“完成”状态)。
一种可能性是使用像'/orders/12?action=cancel'这样的URL,这有点像RPC方法,我错过了一些东西。
另一种看起来可能最好的可能性是有这样的链接:
这个解决方案可能感觉有点冗长。
任何想法如何优雅地处理?也许有人已经解决了类似的“问题”?
c# - 如何使用 Restful API (HATEOAS) 提交深度嵌套资源
假设我有一个包含联系人详细信息资源的应用程序资源,并且联系人详细信息包含地址资源。
例如。
在对应用程序进行 POST 时,我正在创建根应用程序。对于像应用程序联系人这样的所有子资源,我做一个 POST 来创建联系人 1 等......
我的问题是,Application = 提交某处进行处理,但我不想在填写所有内容之前提交它,也就是所有子资源。
乔什
rest - 在 RESTful 世界中,下一个允许的操作如何在基于工作流的应用程序中返回到 UI
我们有一个基于工作流的应用程序,其中给定的进程根据用户操作从一种状态移动到另一种状态。目前我们的要求是让 UI 显示其当前状态并允许用户采取下一步行动。所以我的问题通常是服务器告诉UI 可以采取的下一个操作还是 UI 应该根据当前操作来决定?此应用程序是使用 RESTful Web 服务设计的。