在RESTAPI中,要获取资源,我应该在url中包含资源ID吗?
我正在尝试创建一个RESTAPI,用于在数据库中创建和检索文件。我所遵循的教程使用以下方法检索单个文件:在RESTAPI中,要获取资源,我应该在url中包含资源ID吗?,rest,http,get,Rest,Http,Get,我正在尝试创建一个RESTAPI,用于在数据库中创建和检索文件。我所遵循的教程使用以下方法检索单个文件: $app->get('/file/:file_id', 'authenticate', function($file_id) { global $user_id; $response = array(); $db = new DbHandler(); // fetch file $result = $db
$app->get('/file/:file_id', 'authenticate', function($file_id) {
global $user_id;
$response = array();
$db = new DbHandler();
// fetch file
$result = $db->getFile($file_id, $user_id);
if ($result != NULL) {
$response["error"] = false;
$response["id"] = $result["id"];
$response["file"] = $result["fileLocation"];
$response["status"] = $result["status"];
$response["createdAt"] = $result["created_at"];
echoRespnse(200, $response);
} else {
$response["error"] = true;
$response["message"] = "The requested resource doesn't exist";
echoRespnse(404, $response);
}
});
在这里,他们使用HTTP GET方法并在URL中指定文件ID,这样做是否安全?在请求主体中使用POST并隐藏文件ID是否更安全,或者他们是否应该将文件ID与GET请求一起放在头中?或者这不是我应该担心的吗?在REST中,post方法用于创建一个新资源,而不是获取它。Get方法用于获取资源,您需要指定ID来确定特定的资源。通过URL传递它是一种常见的做法。您可以随机生成这样的ID以使其更难猜测。正如Opal上面所说,该ID用于标识资源。如果您不确定,请阅读此-感谢您的回复,感谢您提供链接,非常感谢