#php #rest #codeigniter-3 #put
Вопрос:
Hy каждый, до сих пор я использовал метод post для обновления записей на серверах, и никогда не использовал метод user Put для этой цели, потому что я в большой путанице с тем, как отправлять и получать данные по запросу Put. Я исследовал некоторые блоги, но не смог ничего понять из этого.
У меня есть следующие вопросы:
Вопрос 1: Должен ли я был использовать параметры или данные формы или и то, и другое в запросе Put?
Вопрос 2: Кроме того, можем ли мы обмениваться данными как в парах, так и в форме-данными в любых запросах?
Вопрос 3: визуализация местоположения, в котором я должен обновить запись на сервере с некоторой базовой информацией и вложением вместе с ней.итак, как я буду действовать с помощью метода Put?
В настоящее время я создаю api в codeigniter 3.
Пожалуйста, помогите мне в этом и спасибо за ваше внимание.
Комментарии:
1. Я бы предложил использовать общедоступную библиотеку, такую как сервер CodeIgniter Rest , вместо того, чтобы изобретать колесо
Ответ №1:
Вопрос 1: Должен ли я был использовать параметры или данные формы или и то, и другое в запросе Put?
Вы можете использовать и то, и другое одновременно.
Параметры в URL-адресе можно прочитать с помощью $this->input->get()
, в то время как для PUT вы можете использовать $this->input->input_stream('key', TRUE);
или $this->input->raw_input_stream
просмотреть документацию
Вам придется проанализировать или обработать необработанные данные, прежде чем вы сможете фактически использовать их в коде. Чтобы увидеть, как выглядят ПОМЕЩЕННЫЕ данные, просто выберите var_dump
Вопрос 2: Кроме того, можем ли мы обмениваться данными как в парах, так и в форме-данными в любых запросах?
Его лучше использовать отдельно. Но это зависит от ваших требований, если вы хотите это сделать, вы можете использовать array_merge()
для объединения данных GET и parsed PUT в одну переменную
Вопрос 3: визуализация местоположения, в котором я должен обновить запись на сервере с некоторой базовой информацией и вложением вместе с ней.итак, как я буду действовать с помощью метода Put?
Вы можете поместить основную информацию в параметры URL и содержимое файла в теле запроса, но это может выглядеть некрасиво, а URL-адрес имеет ограничение по длине, поэтому он может не подходить, если ваша основная информация большая.
Или просто отформатируйте их как необработанный JSON в теле запроса. Пример:
{
"name": "John Smith",
"address": "Blablabla",
"certificate_file": "<base64 encoded file content>"
}
А для кода на стороне сервера, как я уже комментировал ранее, я бы посоветовал вам использовать общедоступную библиотеку, такую как CodeIgniter Rest Server