Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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
在RESTAPI中,要获取资源,我应该在url中包含资源ID吗?_Rest_Http_Get - Fatal编程技术网

在RESTAPI中,要获取资源,我应该在url中包含资源ID吗?

在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

我正在尝试创建一个RESTAPI,用于在数据库中创建和检索文件。我所遵循的教程使用以下方法检索单个文件:

$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用于标识资源。如果您不确定,请阅读此-

感谢您的回复,感谢您提供链接,非常感谢