POST,PUT,GET都是HTTP动词,并且本身并不表示传输数据的格式,因此没有POST格式。这意味着您可以按照您选择的任何方式对数据进行编码。
现在,你决定采用什么样的格式,真的应该是一个API通常被使用的问题。如果它将主要通过Web浏览器提交表单,那么使用表单域编码可能是最合理的事情,因为它使客户端的交互更容易。
另一方面,如果您主要从AJAX调用接收JSON数据,则接收JSON格式可能是有意义的。如果您同时做到这一点,则无法接受两种格式的数据。
要考虑的另一个方面是您将要来回传递的数据结构的复杂性。表单编码(类似于查询字符串编码)是一个键值结构,而JSON(或XML)允许更丰富的数据结构。
最后,在服务器端和您的客户端都可以使用最简单的方法(因为我假设您也将编写有关API的主要客户端消费者)。简单性总是优于复杂性,直到您能够明确表明更复杂的情况为您带来可衡量的收益。
另外,我最后提到的是REST不仅仅是干净的URL或正确使用HTTP动词。这些方面真的只是结冰蛋糕。 REST架构背后的核心思想是Hypertext is the engine of application state.通过简单地在服务器响应中跟踪URL,一个好的客户端可以了解所有可用的操作,并且不需要比基本URL更多的知道。从那里可以发现一切。结合明确定义的内容类型,您有一个世界,许多客户端可以与许多服务器通信,所有这些都使用相同的“语言”,客户端不需要知道有关服务器的任何信息(反之亦然)除了基本URL和内容类型。这就是REST的关键。