在REST FULL API中具有某些方法名称,例如(Get,put,Post等(,以进行某些特定操作(CRUD(但是我可以使用任何方法
执行任何操作DB操作的示例:
我可以使用Get创建或插入新文档,删除或更新 方法。
我可以使用Post方法发布,更新或删除。
我可以使用put方法删除,更新或删除。
我可以使用任何此方法执行DB(crud(操作
那么,为什么需要此方法来指定何时调用任何休息的完整API?
它是基于HTTP标准的A justnuction 。休息是在配置范式上的约定之上构建的。也就是说,一组会议避免了大量的样板和配置。
例如,http 1.1标准说:
-
GET
: get方法表示检索请求-URI确定的任何信息(以实体的形式(。如果请求-URI是指数据生产过程,则是生成的数据,应作为响应中的实体而不是该过程的源文本返回,除非该文本恰好是该过程的输出 -
POST
: post方法用于请求原始服务器接受请求中封闭的实体作为request-uroi在请求行中标识的资源的新从属[..。] 。
...等等。
要扩展Matías的答案,您必须考虑允许消费者使用他们想要的任何动词调用您的API的后果。
首先,如果您永远不知道会发生什么操作,您的实现将会更加复杂。例如,如果有人可以使用GET更新资源,您如何判断查询和更新之间的区别?答案:实施的额外(不必要(复杂性。
其次,性能和可伸缩性的观点会产生后果。GET可以轻松地缓存资源表示,因为其具有责任感的性质 - 这是预期的约定。通过不清楚哪种动词可以做什么,您就可以更难使用诸如缓存之类的策略,这使您的API更难扩展。
第三,这使消费者变得更加复杂。HTTP的基于公约的方法被广泛理解。使用不遵循该约定的API(尤其是将自己标记为使用HTTP/REST(的API,将增加集成成本。