RESTful,适合所有人?

时间:2017-09-16 16:08:59

标签: rest

REST架构适合所有情况吗?

考虑一个例子:

Person {
    int id;
    String name;
    boolean verified;
}

现在,经过验证的结果是'对此人进行的第三方验证。

在REST之前的时代,我会写这样的东西:

www.prerest.com/person/verify

让该人员得到验证,并使用'操作的结果更新标记。

如何为此编写基于RESTful,名词的API?

如果我决定编写一个基于动词的API,就像上面那个,我猜它不会是一个RESTful架构。它会被称为“坏主意”吗?

2 个答案:

答案 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