我在这里看了很多关于SO的讨论,观看了Jon Moore的演讲(其中解释了很多,顺便说一句),并阅读了Roy Fielding关于HATEOAS的博客文章,但在客户端设计方面,我仍然感到有点暗淡.
API问题
现在,我只是返回带有表单/锚点和定义列表的xhtml来表示资源.以下代码段详细说明了我如何布置表单/锚点/列表.
# anchors
<li class='docs_url/#resourcename'>
<a rel='self' href='resource location'></a>
</li>
# forms
<form action='action_url' method='whatever_method' class='???'></form>
# lists
<dl class='docs_url/#resourcename'>
<dt>property</dt>
<dd>value</dd>
</dl>
Run Code Online (Sandbox Code Playgroud)
我的问题主要是表格.在Jon的演讲中,他记录了诸如(add_location_form)等表单类型以及它们所需的输入.我没有很多资源,但我正在考虑抽象表单类型(添加,删除,更新等),并在文档中注意,(添加,更新)您必须发送目标资源的有效表示并删除,您必须发送标识符.
问题1:有了HATEOAS的概念,我们真的不应该让客户"发现"表单(通过对它们进行分类添加,删除,更新等)并只发送回我们给他们的所有数据吗?我在这里的真正问题(不是一个讨论)是否遵循良好做法?
客户问题
在HATEOAS之后,我们对可以发现的资源采取的行动如何影响客户端代码(api的消费者)及其ui.听起来很棒,按照这些原则,UI应该只显示可用的操作但是如何实现?
我目前的方法是将响应解析为xml和usin xpath,以查找客户端开发时已知的操作(记录的表单类,即添加,删除,更新),并显示ui控件(如果可用).
问题2:我的发现方式错了吗?或者就客户而言(知道表单类),这太过神奇吗?这不会假设客户端知道哪些操作可用于每个资源(这可能没问题,因为它是创建客户端的一种原因,对吗?)并且应该记录操作(表单类)到资源的映射,或只是记录表单类,并允许客户端(和客户端开发人员)研究和发现它们?
我知道我到处都是这个,但任何见解都非常感激.我会回答一个回复,回答这两个问题中的任何一个.谢谢!
我正在尝试将音频播放器添加到我的网站,该播放器应该适用于移动设备和桌面(响应).我找到了这个链接,我可以轻松地将mp4文件添加到我的bootstrap项目中. Bootstrap 3 - 响应式mp4-video 引导程序中是否有类似的代码来添加响应式音频文件?
我看到的许多 npm 模块名称都在它们前面添加了技术名称,例如 react-native 或 jquery 等。由于我们已经在 package.json 文件中提供了关键字,因此遵循此约定是否有任何好处。我问这个是因为我即将向 npm 发布一个包,并且将 react-native 附加到名称的开头会使其太长。此外,最佳实践没有提及任何有关附加技术名称的内容。
我有一个客户端向我发送从 oauth2 授权端点获得的授权代码。我可以从我的 Nodejs 后端代码创建一个请求,以使用此授权代码从令牌端点获取令牌。但是,我认为passport js应该已经有一个逻辑,因为它可以在验证回调函数中返回令牌(假设整个授权流程是由passport完成的)。我想知道护照js中是否有一个函数可以接受授权码并返回令牌。我在文档中找不到这个。还尝试调试护照js代码,但没有成功:(
api-design ×1
audio ×1
hateoas ×1
mp3 ×1
node.js ×1
npm ×1
oauth-2.0 ×1
passport.js ×1
rest ×1