REST中一些操作(动词)的命名约定

时间:2016-05-25 20:17:24

标签: java web-services api rest naming-conventions

我在设计REST api时尝试不使用动词,但努力将操作重新设想为资源(如在REST中)

以下是一些

/guest/accountnumber/isValid/{username} (returns a Boolean by checking if account number is valid)
/user/associateAccount/{firstAcc}/{secondAcc} (returns a Boolean. Links up the two passed in accounts)

我真的不想故意遵循不好的做法并扼杀REST的精神,但我很难将其视为资源状态转移,而不是家禽XML RPC样式操作或远程方法调用。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

布尔值是否表示操作成功? HTTP响应代码可用于此。

对于"关联帐户",将关联本身想象为一个对象。可以想象这些对象位于“'文件夹中”。在他们所指的帐户下。

您可以PUT /accounts/{firstAcc}/associations/{secondAcc}返回一个HTTP代码,指明帐户是否已成功关联(例如201 Created409 Conflict)。 DELETE /accounts/{firstAcc}/associations/{secondAcc}可用于删除链接。

对于你的另一个例子,我并没有确切地看到你想要表达的内容。它只是检查一个帐户是否存在?为此,我会使用HEAD /accounts/{number}。如果帐户有效,它将返回200,如果不是,则返回404