Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json REST POST和GET实体格式之间不一致?_Json_Rest_Api Design - Fatal编程技术网

Json REST POST和GET实体格式之间不一致?

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

我正在创建一个API,用于提交传入的电子邮件进行内部处理。邮件服务器脚本将以一种简单的格式提交它们,就像收到的一样:

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语义更加宽容,因此,客户机关于正在发生的事情的可用信息更少;这是交易的一部分