Rest api: как я могу создать api с помощью метода Put?

#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