REST架构适合所有情况吗?
考虑一个例子:
Person {
int id;
String name;
boolean verified;
}
现在,经过验证的结果是'对此人进行的第三方验证。
在REST之前的时代,我会写这样的东西:
www.prerest.com/person/verify
让该人员得到验证,并使用'操作的结果更新标记。
如何为此编写基于RESTful,名词的API?
如果我决定编写一个基于动词的API,就像上面那个,我猜它不会是一个RESTful架构。它会被称为“坏主意”吗?
答案 0 :(得分:2)
REST架构适合所有情况吗?
罗伊·菲尔丁,writing in 2008
REST适用于跨多个组织的基于网络的长期应用程序。如果您不认为需要约束,则不要使用它们。
但这似乎不是你所要求的
在REST之前的时代,我会写这样的东西......
非常好。 REST并不关心您用于标识符的拼写。服务器可以完全自行决定将信息编码到标识符中以供自己专用。
www.prerest.com/person/verify
就REST而言,非常好。
是的wwww.prerest.com/223d17c3-6f6a-42b6-9ddd-599df9811ad4
如果我决定编写一个基于动词的API,就像上面那个,我猜它不会是一个RESTful架构。它会被称为“坏主意”吗?
如果您担心URI的拼写,它已经不是RESTful架构,我可以向您保证。请Stefan Tilkov查看此演讲。
但是,如果您的本地样式指南要求使用名词....请注意您的终端返回的文档。 "资源"是一个集成资源 - 那么它的名称是什么?客户是否与验证令牌集成?索赔检查?报告?
答案 1 :(得分:1)
听起来验证是一个可能更长时间运行的过程。
对此进行建模的一种方法是引入verification
资源,使用POST创建一个资源并最终获得Location
验证结果,或者使用资源来发现验证结果它可用。
POST /person/123/verification
--> Location: /person/123/verification/456