Json REST POST和GET实体格式之间不一致?
我正在创建一个API,用于提交传入的电子邮件进行内部处理。邮件服务器脚本将以一种简单的格式提交它们,就像收到的一样:Json REST POST和GET实体格式之间不一致?,json,rest,api-design,Json,Rest,Api Design,我正在创建一个API,用于提交传入的电子邮件进行内部处理。邮件服务器脚本将以一种简单的格式提交它们,就像收到的一样: POST /api/messages/ { "sender": "sender@...", "recipient": "recipient@...", "email_message": "headers\nbody" } 但是,在提交电子邮件时,会对其进行解析,提取一些字段,解析邮件正文等,我们实际存储为实体的内容如下: GET /api/message
POST /api/messages/
{
"sender": "sender@...",
"recipient": "recipient@...",
"email_message": "headers\nbody"
}
但是,在提交电子邮件时,会对其进行解析,提取一些字段,解析邮件正文等,我们实际存储为实体的内容如下:
GET /api/messages/1/
{
"sender": "sender@...",
"recipient": "{our internal recipient ID}"
"subject": "Subject from email",
"date": "Date from email",
"parsed_body": "Output of some magic performed on the Email body",
... etc ...
}
正如你所看到的,这与最初通过POST提交的内容大不相同
REST规则是否允许此转换,或者实体是否应按最初发布的方式存储和检索?如果它应该按原样存储,那么我应该提供什么样的API端点来提交未解析的消息
REST规则是否允许此转换,或者实体是否应按最初发布的方式存储和检索
因为,储存任何有意义的东西都可以。想想它在网络上是如何工作的;我们填写了一个表单,表单以一组键值对的形式提交,但是服务器没有承诺它将存储键值对
语义不同;客户机希望新的表示将覆盖现有的表示(如果有的话),不管这意味着什么。因此,您需要更多地了解这些语义的含义,特别是关于作为各种响应的结果,允许客户机做出哪些假设
POST语义更加宽容,因此,客户机关于正在发生的事情的可用信息更少;这是交易的一部分