哪种端点适合回答REST设计中的问题

时间:2019-05-28 20:20:55

标签: rest http server

哪个端点适合回答问题。

我想用

 post /questions/{id}

这不是自我解释。很难想象在“ / question / 2”上发布信息会回答一个问题。

我考虑过使用

 post  /questions/{id}/answers 

问题和答案(如果相关)不会映射到我系统中的模型或表格。我使用另一个API访问该问题。我的应用程序充当中心。

1 个答案:

答案 0 :(得分:0)

REST不在乎您的URI使用什么拼写。 /cbcaf573-4f34-40ae-a91b-f097adfac495是一个非常令人满意的URI。您看到的各种拼写约定的权重应与本地编码标准中的变量命名大致相同;它可以使人们更容易理解发生了什么,但是机器不在乎。

您通常需要注意的是:由于请求的结果,哪个资源的表示将更改。如果/questions/{id}的表示形式通常包含所有答案,则通常需要将答案发布到questions/{id}。如果问题的表示形式仅包含指向答案的链接,则通常需要将POST发送到与该链接相同的URI。

这样做的动机是HTTP的cache invalidation rules都是基于不安全请求的目标uri。

但是,不需要使用缓存无效样式。例如,这里的问题是:它的URI是

https://stackoverflow.com/questions/56349556/what-endpoint-would-be-suitable-for-answering-a-question-in-rest-design

但是当我提交答案时,带有表单数据的POST请求将发送到

https://stackoverflow.com/questions/56349556/answer/submit

在成功保存答案后,我将客户端重定向到

https://stackoverflow.com/questions/56349556/what-endpoint-would-be-suitable-for-answering-a-question-in-rest-design/56350857#56350857

这也行得通-我的浏览器在弄清楚如何创建遵循提交协议所需的请求时没有任何麻烦。