对于我正在创建的RESTful API,我需要一些获得资源的功能,但如果它不存在,则创建它然后返回它。我不认为这应该是GET请求的默认行为。我可以在我给GET请求的某个参数上启用此功能,但它看起来有点脏。
重点是我只想做一个请求,因为这些请求将来自可能具有较慢互联网连接的移动设备,所以我想限制需要完成的请求尽可能。
我不确定这是否适合RESTful世界,但如果没有,它会让我失望,因为这意味着我必须对REST的想法进行一些修改。
有没有人知道RESTful方式这样做,或者其他方式,一种不与REST想法冲突的美丽方式?
答案 0 :(得分:1)
客户是否需要在创建过程中提供任何信息?如果是这样,那么你真的需要将GET和POST分开,否则你需要在每个GET中发送这些信息,这将非常难看。
如果您正在发送GET而没有任何其他信息,那么没有理由为后端在返回之前不能创建资源(如果它尚不存在)。根据创建资源所花费的时间量,您可能需要考虑异步并使用202作为其他答案,但这意味着您的客户端必须处理(还)另一个响应代码,因此可能会更好只是等待资源最终确定并返回。
答案 1 :(得分:0)
非常简单: