POST,PUT,GET都是HTTP动词,并且本身并不表示用于传输数据的格式,因此没有POST格式。这意味着您可以按照自己选择的任何方式对数据进行编码。
现在,您决定使用哪种格式实际上应该更多地取决于您的API通常如何使用。如果它主要来自Web浏览器提交表单,那么使用表单字段编码可能是最合理的做法,因为它使客户端更容易进行交互。
另一方面,如果您主要要从 AJAX 调用接收 JSON 数据,则接收 JSON 格式可能是有意义的。如果您同时执行这两项操作,则没有任何理由不能接受两种格式的数据。
要考虑的另一个方面是您将来回传递的数据结构的复杂性。表单编码(也类似于查询字符串编码)是一种键值结构,而 JSON(或 XML)允许更丰富的数据结构。
最后,在服务器端和客户端使用最简单的方法(因为我假设您还将编写相关API的主要客户端使用者)。简单性总是优于复杂性,直到你能明确地证明更多的复杂性会给你带来可衡量的好处。
另外,我要提到的最后一件事是,REST不仅仅是干净的URL或正确使用HTTP动词。这些方面实际上只是锦上添花。REST架构背后的核心思想是超文本是应用程序状态的引擎。通过简单地跟踪服务器响应中的URL,一个好的客户端可以了解所有可用的操作,并且只需要知道基本URL。其他一切都可以从中发现。再加上定义良好的内容类型,您就拥有了一个世界,其中许多客户端可以与许多服务器进行通信,这些服务器都使用相同的“语言”,并且客户端不需要知道有关服务器的任何信息(反之亦然),除了基本URL和内容类型。这就是 REST 的全部意义所在。