我正在开发AngularJS中的应用程序。但我仍然不太清楚POST,PUT和GET的区别。当我从服务器获取数据时,我通常使用$ http GET,当服务器端不需要任何前端数据将数据返回到客户端时,如下所示。
$http.get(configSettings.baseUrl +"retrive_user.php").success(function (data) {
}).error(function() {
console.log("error");
});
当我使用POST时,我服务器端需要前端数据,以便将数据返回到客户端,如下所示。
$http({
url: configSettings.baseUrl + "insert_message.php",
method: "POST",
data: {
'username': username,
'messageContent' : messsageContent,
'sender_id': usernameID,
'subscribeChannel' : subscribeChannel,
'attachmentType' : attachmentType,
'event' : 'chat_message'
}
}).success(function(response) {
console.log(response);
}).error(function(response) {
console.log(response);
})
});
甚至,我想在我的MySQL数据库中删除数据或编辑数据我在上面的angularjs中使用POST方法,然后在我的PHP服务器端,我喜欢以下来获取数据。
$chat_info = file_get_contents("php://input");
$chat_request = json_decode($chat_info,true);
@$username = $chat_request['username'];
@$messageContent = $chat_request['messageContent'];
@$sender_id = $chat_request['sender_id'];
@$subscribeChannel = $chat_request['subscribeChannel'];
@$attachmentType = $chat_request['attachmentType'];
@$event = $chat_request['event'];
我不知道这是否是RESTful API中的正确做法。我理解POST和GET之间的区别。我的服务器端脚本,我只需要从客户端获取数据,以便从数据库创建,更新,读取和删除数据。 RESTful API中的PUT,DELETE和PATCH有什么特别之处?
答案 0 :(得分:1)
HTTP谓词可能是关于HTTP协议最神秘的事情之一。
PUT 用提供的新表示替换整体资源,或者您可以说如果用户想要添加新记录,他应该使用的 PUT 强>
另一方面 PATCH =>正如名称所说,它是一种更新记录的补丁。如果用户只想更新部分记录,比如说只是一个电子邮件地址,他应该使用PATCH。
由于 PUT 方法可以更新所有记录,因此需要更多带宽或处理完整资源 部分。因此引入 PATCH 来减少带宽。
例如: - 假设我正在向服务器发送新记录,即
{ "first": "Anand Deep", "last": "Singh" }
所以我会使用 Put ,因为我正在添加新记录。但是这里有一个 Put 请求的问题,当我使用PUT时,我必须先发送所有两个参数,这些参数是第一个也是最后一个。所以必须再次发送所有值
但修补程序仅发送用户想要更新的数据,但不会影响或更改其他数据。因此无需再次发送所有值。
因此 PUT 用于创建新记录, PATCH 用于更新现有记录。
DELETE 相同,它告诉服务器该请求应删除将其传递给服务器的记录。
有关详细信息,请点击下面的图片或original paper: -