【发布时间】:2016-01-29 12:17:48
【问题描述】:
我正在尝试学习如何更好地制作 REST API,我已经阅读了 HATEOAS,但无法完全理解它的所有灵活性。
有人可以解释为什么它灵活吗?
让我们考虑一下 PayPal HATEOAS API
这里是链接数组的示例
[
{
"href":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-6RV70583SB702805EKEYSZ6Y",
"rel":"self",
"method":"GET"
},
{
"href":"https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=EC-60U79048BN7719609",
"rel":"approval_url",
"method":"REDIRECT"
},
{
"href":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-6RV70583SB702805EKEYSZ6Y/execute",
"rel":"execute",
"method":"POST"
}
]
我了解我们可以提出请求,例如在本例中提供付款信息。
有几个问题
为什么我们需要
self作为rel的类型,当应用程序发出请求时,它已经知道该资源的完整URL,对吗?为什么我们需要在链接数组中复制它?灵活性是什么?在这个例子中,有三个(两个没有 self)
rel类型。应用程序如何知道所有这些类型?无论如何,它们都应该在代码中进行硬编码,例如,如果引入了新的rel类型,我们仍然需要在客户端代码中添加逻辑来处理这种类型的rel,因此我们需要处理rel的类型或者如果 API 响应不遵循 HATEOAS 原则编写逻辑来发出新请求。
我错了吗?
请解释一下这个的主要思想。如果有任何帮助,我将不胜感激。
谢谢。
【问题讨论】:
标签: api rest asp.net-web-api restful-url hateoas