Rest api:如何使用 Put 方法创建 api?

Rest api: how can i create an api with Put method?

大家好,直到现在我都使用 post 方法来更新服务器上的记录,并且从来没有为此目的使用 Put 方法,因为我对如何在 Put 上发送和接收数据感到很困惑要求。 我研究了一些博客,但我无法从中理解。

我有以下问题:

问题 1:我是否必须在 Put 请求中使用 param 或 form-data 或两者?

问题 2:另外,我们可以在任何 Request 中共享 param 和 form-data 中的数据吗?

问题 3:假设我必须使用一些基本信息和附件更新服务器中的记录以及 it.so 我将如何使用 Put 方法进行处理?

目前我正在 codeigniter 3 中创建 api。

请帮我解决这个问题,感谢您的光临。

Question 1: Did i have to use param or form-data or both in Put request?

您可以同时使用两者。

URL中的参数可以使用$this->input->get()读取,而对于PUT,您可以使用$this->input->input_stream('key', TRUE);$this->input->raw_input_streamsee documentation

您必须先解析或处理原始数据,然后才能在代码中实际使用它。要查看 PUT 数据的样子,只需 var_dump it

Question 2: Also, can we share data in both param and form-data in any Requests?

最好分开使用。但这取决于你的要求,如果你想这样做,你可以使用 array_merge() 将 GET 和解析的 PUT 数据合并到一个变量中

Question 3: imaging a sitation that i have to update an record in server with some basic info and an attachment along with it.so how i will go for it with Put method?

您可以将基本信息放在URL参数中,将文件内容放在请求正文中,但它可能看起来很难看,而且URL有长度限制,所以如果您的基本信息很大,它可能不适合。

或者在请求正文中将它们格式化为原始 JSON。示例:

{
    "name": "John Smith",
    "address": "Blablabla",
    "certificate_file": "<base64 encoded file content>"
}

对于服务器端代码,就像我之前评论过的那样,我建议您使用公开可用的库,例如 CodeIgniter Rest Server