CRUD в HTTP-клиенте для веб-сайтов ( Postman )
CRUD в компьютерном программировании - это четыре основные операции постоянного хранения.
В HTTP они представлены следующими HTTP-методами:
- Create: PUT, POST
- Read: GET
- Update: PUT, POST, PATCH
- Delete: DELETE
There is obviously some ambivalence going on between PUT, POST, and PATCH. In the real world, it depends on the API (or “web service”) which method will be used when.
But ideally:
- PUT будет использоваться для обновления ресурса идемпотентным способом: несколько идентичных запросов всегда должны иметь одинаковый результат, как GET
- Один и тот же запрос GET всегда должен приводить к одному и тому же результату - один и тот же ответ
- POST создаст ресурс и не приведет к тому же результату. Таким образом, если вы вызываете его несколько раз, будет создано несколько ресурсов (если это разрешено)
- PATCH предназначен для применения частичного обновления к ресурсу. Но только если он уже существует. Таким образом, в отличие от PUT, он не будет создавать новую запись, если указанный ресурс не существует
Common mistake when choosing an HTTP method
Несмотря на то, что многие из приведенных выше решений принимаются разработчиками, существует одна распространенная ошибка в отношении выбора правильного метода HTTP: если во время тестирования вы когда-либо увидите какой-либо запрос GET, требующий аутентификации (мы рассмотрим это позже), который обновляет ресурс это, скорее всего, проблема, о которой вы должны сообщить. Это может оказать значительное влияние на безопасность, поскольку запросы GET, как указано в протоколе HTTP, должны быть идемпотентными и безопасными. Веб-браузеры ожидают, что так и будет, и поэтому будут менее строгими.
Безопасный метод HTTP означает, что любой запрос, использующий безопасный метод, не может изменить или изменить ресурс.
Nesmotrya na to, chto mnog
Далее давайте рассмотрим примеры для каждого из них.
GET
- Для этого примера создайте новый запрос (нажмите кнопку + вверху), это будет запрос GET по умолчанию.
- Чтобы запросить содержимое простого текстового файла с почтальоном, просто введите полный URL-адрес и нажмите «Отправить», чтобы отправить запрос.
3. Содержимое файла будет отображаться в разделе «Ответ» внизу:
4. Проверьте вкладку «Заголовки», которая отображает полный список заголовков ответов:
5. В разделе ответов почтальон также отобразит код состояния HTTP (200 OK), а рядом с ним время выполнения запроса (46 миллисекунд). А также размер ответа 575 байт:
6. Результатом / ответом, возвращаемым в этом примере, является простой текст one,two,three,four
который представляет собой список этих четырех слов в формате CSV. CSV обозначает «значения, разделенные запятыми», он используется для хранения списка отдельных значений, разделенных одной запятой между ними.
7. Пожалуйста, сохраните этот запрос GET в своей коллекции как «Пример файла GET», прежде чем переходить к следующему запросу PUT.
PUT
- Другой способ создать новый запрос без необходимости повторного ввода всех данных - щелкнуть правой кнопкой мыши вкладку существующего запроса и выбрать «Duplicate tab» в контекстном меню. Пожалуйста, сделайте это сейчас и измените метод запроса на «PUT».
2. Затем выберите «Save as…» в раскрывающемся списке рядом с кнопкой «Save», чтобы сохранить его как новый запрос к вашей коллекции:
3. Затем введите URL-адрес, по которому вы хотите опубликовать данные (это будет называться «конечная точка» или «конечная точка API»).
4. Выберите вкладку «Тело» в разделе запроса. Это позволит вам выбрать тип контента. По умолчанию будет установлено значение «none», поскольку тело сообщения отсутствует. Измените это, выбрав «raw» в качестве типа содержимого тела и введите CSV-данные a, b, c, d
в новом текстовом поле, которое появляется после того, как вы выбрали тип содержимого.
5. Когда все будет готово, нажмите "Send"
6. Затем вернитесь к своему предыдущему запросу («Пример файла GET») и снова отправьте его, чтобы убедиться, что данные были обновлены. Теперь должны отображаться CSV-данные, которые вы только что отправили в ответе:
7. Теперь, если вы не хотите изменять весь список CSV, а только одну запись - например, Вы хотите заменить «с» на «три» - тогда вы можете использовать метод PATCH.
PATCH
Синтаксис для исправления записей может сильно различаться в зависимости от API или веб-сервисов. Позже вы узнаете подробности в этом курсе, API могут использовать стандарты, такие как JSON, XML или даже проприетарные форматы.
- Обратите внимание, что, как и в примере с запросом PUT, PATCH использует текстовое тело для данных сообщения.
2. Когда вы дублируете предыдущий запрос «PUT data», измените путь на patchdata.php, метод HTTP на «PATCH» и измените основной текст (2=Charlie
).
3. Затем нажмите «Send», чтобы отправить его, чтобы получить наглядный результат.
4. Не забудьте использовать «Save as…», чтобы впоследствии сохранить его как новый запрос, и не перезаписывать оригинал.
5. Если вы запрашиваете данные впоследствии с помощью предыдущего запроса «GET file example», это должно выглядеть так:
В этом примере конечная точка PATCH позволяет нам обновлять определенные записи списка CSV до нового значения. В качестве параметров он ожидает индекс, который вы хотите изменить, а также новое значение.
0=text
означает, что вы хотите обновить первую запись (она начинает отсчет с 0) и установить для нее значение: «Text»
º Когда вы отправите это, список изменится с предыдущегоa, b, c, d
наText, b, c, d
- Если вы исправите
2=Charlie
º Инструкция установит для данных CSV новое значение:a, b, Charlie, d
º Индекс «2», или третья запись в списке CSV, а новое значение - Charlie.
º Это полный запрос PATCH, чтобы изменить третью запись (помните, индексы, подобные этому, обычно начинаются с нуля) списка CSV на новое значение Charlie
POST
- Создайте новый запрос с POST в качестве метода HTTP и используйте формат «form-data» для тела запроса.
- Введите две клавиши: «имя» и «город» и введите любые значения по вашему выбору.
- Полный запрос должен выглядеть так:
4. Когда вы отправляете запрос, нажимая кнопку «Send», в ответе должно отображаться подтверждение, и в этом примере ответ также содержит отправленные данные:
5. Возможно, вы уже заметили кнопку «Code».
6. Когда вы щелкните по нему, вы увидите параметры для преобразования данных запроса в различные форматы для экспорта:
º Если вы выберете «HTTP» из выпадающего списка в левом верхнем углу, вы увидите необработанный http-запрос - в точном виде сервер получит его.
º Есть также варианты, позволяющие Postman генерировать фрагменты кода для различных языков программирования, таких как PHP, Java, Python…
DELETE
В нашем случае вы можете:
- Вызовите конечную точку DELETE с индексом, как описано выше, чтобы удалить конкретную запись из списка
- Или просто позвоните без каких-либо параметров, чтобы удалить весь список
Давайте удалим некоторые записи:
- Создайте новый запрос и сохраните его в своей коллекции как «DELETE data».
- Опять же, используйте необработанное тело и введите индекс записи списка, которую вы хотите удалить.
- Из предыдущего примера данные в списке должны быть a, b, Charlie, d.
- Если вы отправите запрос DELETE с индексом 1, это должно удалить вторую запись, чтобы результирующий список стал: a, Charlie, d.
- Если у вас другой результат, сначала отправьте предыдущий запрос PUT, чтобы восстановить исходные значения:
6. Полный запрос DELETE:
7. Чтобы убедиться, что запрос был успешным, снова вызовите предыдущий запрос GET: