我是Elasticsearch的新手,正尝试在弹性索引中添加文档。我在这里在PUT和POST之间感到困惑,因为在以下情况下两者都会产生相同的结果:
curl -H "Content-Type: application/json" -XPUT "localhost:9200/products/mobiles/1?pretty" -d"
{
"name": "iPhone 7",
"camera": "12MP",
"storage": "256GB",
"display": "4.7inch",
"battery": "1,960mAh",
"reviews": ["Incredibly happy after having used it for one week", "Best iPhone so far", "Very expensive, stick to Android"]
}
"
vs
curl -H "Content-Type: application/json" -XPOST "localhost:9200/products/mobiles/1?pretty" -d"
{
"name": "iPhone 7",
"camera": "12MP",
"storage": "256GB",
"display": "4.7inch",
"battery": "1,960mAh",
"reviews": ["Incredibly happy after having used it for one week", "Best iPhone so far", "Very expensive, stick to Android"]
}
"
答案 0 :(得分:2)
请参阅this
答案 1 :(得分:0)
它们都是HTTP的安全方法之一。
通常,我们使用POST创建资源,然后使用PUT进行修改。除了可以自由设置服务器端之外,还可以同时使用它们,因为它们具有类似的属性,例如:它们都具有主体,它们是安全的,数据未显示在URL中,以及...。 尽管最好考虑一下我之前说过的标准规则: 通常我们使用POST创建资源,然后使用PUT修改资源。这样,您的代码更具可读性,可变性...
要更深入,您可以根据put-versus-post考虑以下技巧:
在POST和PUT之间进行选择很容易:仅当端点遵循以下2条规则时,才使用PUT:
使用PUT时,是说我们希望将请求中发送的资源存储在给定的URI中。我们是从字面上“投放”该地址的资源。