我正在设计REST API,其中我有以下资源行为:
为了创建资源,应该发送初始数据,这仅与创建相关。
这意味着,GET
资源表示与POST
资源表示不同。
示例:
/api/customers
Request body:
{
"name": "John",
"surname": "Doe",
"creation_specific_data": "data"
}
/api/customers/1
Response body:
{
"id": 1,
"name": "John",
"surname": "Doe"
}
因此,正如您所见,GET
上的数据总是偏离创建时的数据。
根据我的理解,可以在POST
中提供较少的属性,并在GET
时提供更多数据(例如服务器自动生成 id )。
问题是,反过来也可以接受吗?在POST
上提供更多数据,并在GET
上收到更少的数据?
答案 0 :(得分:1)
您使用POST
执行的任何操作都是可以接受的,只要它不复制已经通过其他方法标准化的功能 - 例如使用POST
进行简单检索而不是GET
- 并妥善记录。