我在设计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样式操作或远程方法调用。任何帮助表示赞赏!
答案 0 :(得分:1)
布尔值是否表示操作成功? HTTP响应代码可用于此。
对于"关联帐户",将关联本身想象为一个对象。可以想象这些对象位于“'文件夹中”。在他们所指的帐户下。
您可以PUT /accounts/{firstAcc}/associations/{secondAcc}
返回一个HTTP代码,指明帐户是否已成功关联(例如201 Created
或409 Conflict
)。 DELETE /accounts/{firstAcc}/associations/{secondAcc}
可用于删除链接。
对于你的另一个例子,我并没有确切地看到你想要表达的内容。它只是检查一个帐户是否存在?为此,我会使用HEAD /accounts/{number}
。如果帐户有效,它将返回200
,如果不是,则返回404
。