Joh*_*ohn 13 rest web-services hateoas eve
我可以有一些HATEOAS的示例/典型用例吗?我同意它可以是一个非常强大的概念,提供很大的灵活性,但我不确定如何从HATEOAS中获益.如果您可以分享您的经验/用例,那将是很棒的.
上面的@dreamer是一个很好的答案,但大多数基于REST的服务中都没有HATEOAS.它是REST架构风格的约束,允许客户端完全通过资源中包含的超媒体与服务进行交互.
如果您查看Twitter或Facebook REST API,您将找不到超媒体.查看Facebook 好友列表资源.该资源中没有可用于转换资源状态的超文本链接 - 删除,更新等.相反,您需要阅读带外文档以了解删除该内容时需要执行的操作资源.
在API中使用超媒体的一个主张是,您可以在资源本身内管理变更.例如,如果Facebook想要在frendlist中添加其他功能,该怎么办?如果它是在考虑HATEOAS的情况下构建的,则会更新资源以添加超链接,从而提供那些额外的状态转换.
如果这听起来很难,那你就是对的.但是,作为客户端应用程序的开发人员,一旦了解了超媒体的呈现方式,就可以构建与API本身一起发展的应用程序.
那么如何使用HATEOAS构建API?有很多选项,但我最喜欢超文本应用语言(HAL).
更新:由于您要求一个示例,这里是使用HAL 的演示的链接.
良好的公共HATEOAS用例很难找到,因为围绕REST存在很多误解,而HATEOAS很难实现.你真的需要很好地理解它的好处,在你愿意让自己完成它的工作之前,如果客户没有正确地遵循它,那么所有的工作都将是徒劳的.
根据我的经验,在公司中实施适当的REST是一种文化变革,与迁移到版本控制系统或敏捷开发一样重要.除非每个人都采用它并理解它,否则会造成比解决更多的麻烦.
考虑到这一点,我认为最好的例子是foxycart.com HAL API,在下面的链接上:
https://api-sandbox.foxycart.com/hal-browser/hal_browser.html#/
Ank*_*mar -1
这是一个非常强大的概念,用于RESTful
向客户展示应用程序。现在有很多很多项目都在采用这个接口。一个典型的用例是Web Services APIs
使用 RESTful API。RESTful API 通常包含以下元素:
例如,可以使用上面的方法修改应用程序状态HTTP methods
,以获取特定资源,客户端可以发出如下REST query
命令curl
:
curl -X GET --url "http://example.com/resource/" -X "Content-Type:application/json"
Run Code Online (Sandbox Code Playgroud)
你可以浏览一下man pages
forcurl
及其用法。有关 RESTful 接口概念的更多信息可以查看wiki
归档时间: |
|
查看次数: |
4037 次 |
最近记录: |