我刚开始学习如何设计/编写RESTful API。我有一个普遍的问题:
假设我有一些简单的SQL数据库,我正在编写一个API,允许创建新记录,查看记录,删除记录或更新记录。
假设我想要删除记录,通常最好传入URL中记录的ID,例如/api/delete_record?id=10
,或者更好的做法是:
/api/record
并接受GET
,POST
,PATCH
和DELETE
,并通过请求中的JSON正文处理数据。< / p>
我在Python中使用Flask编写了一个小API,我只有一个URL:/record
,它接受所有上述HTTP方法。它查看请求中的方法,并相应地期望JSON中的请求体。那被认为是好的还是坏的做法?
任何建议都将不胜感激。请注意,我对这一切仍然很新。我曾经使用过API,但我从未开发过任何API。谢谢!
答案 0 :(得分:3)
删除资源的正确REST方法是发送DELETE请求,并将范围信息放在URI(不是正文)中,如/api/records?id=10
或/api/records/10
。方法信息应该在HTTP方法中,而不是URI。
我建议您阅读“RESTful Web服务”以了解API设计的最佳实践。