CRUD с Postman
CRUD в компьютерном программировании являются четырьмя основными операциями постоянного хранения.
В HTTP они представлены следующими HTTP-методами:
- Create: PUT, POST
- Read: GET
- Update: PUT, POST, PATCH
- Delete: DELETE
Очевидно, что между PUT, POST и PATCH есть некоторая неясность. В реальном мире это зависит от API (или "веб-сервиса"), какой метод будет использоваться.
Но в идеале:
- PUT будет использоваться для обновления ресурса индемпотентным способом: несколько одинаковых запросов всегда должны иметь один и тот же результат, так же как и GET
Один и тот же GET-запрос всегда должен приводить к одному и тому же результату - одному и тому же ответу - POST создаст ресурс, и не приведет к такому же результату. Таким образом, если вы вызываете его несколько раз, то будет создано несколько ресурсов (если это разрешено).
- PATCH предназначен для применения частичного обновления ресурса. Но только если он уже существует. Таким образом, в отличие от PUT, он не будет создавать новую запись, если указанного ресурса не существует.
Общая ошибка при выборе метода HTTP
Хотя многие из вышеперечисленных решений зависят от разработчиков, есть одна общая ошибка в выборе правильного HTTP-метода: если во время тестирования вы когда-нибудь увидите GET-запрос, требующий аутентификации (мы расскажем об этом позже), который обновляет ресурс, то это, скорее всего, будет проблемой, о которой вы должны будете сообщить. Это может оказать значительное влияние на безопасность, так как GET-запросы, как указано в HTTP-протоколе, должны быть идолопокрытыми и безопасными. Веб-браузеры ожидают, что так будет и поэтому менее ограничены.
Безопасный метод HTTP означает, что любой запрос, использующий безопасный метод, не может изменить или модифицировать ресурс.
Далее рассмотрим примеры для каждого из них.
GET
1. В данном примере создайте новый запрос (нажмите кнопку + вверху), по умолчанию это будет GET-запрос.
2. Чтобы запросить содержимое простого текстового файла у Postman, просто введите полный URL и нажмите кнопку Send, чтобы отправить запрос.
3. Содержимое файла будет отображаться в нижней части раздела "Response" (Ответ):
4. Откройте вкладку "Headers", на которой отображается полный список заголовков ответов:
В разделе ответа Postman также отобразит код статуса HTTP (200 OK), а рядом с ним время выполнения запроса (46 миллисекунд). А также размер ответа 575 байт:
6. Результат / ответ, возвращаемый в этом примере - простой текст один, два, три, четыре, представляющий собой список этих четырех слов в CSV-формате. CSV означает "значения, разделенные запятыми", он используется для хранения списка отдельных значений, разделенных между ними одной запятой.
Пожалуйста, сохраните этот GET-запрос в своей коллекции как: "Пример GET-файла", перед тем, как перейти к следующему PUT-запросу.
PUT
Другой способ создать новый запрос без повторного ввода всех данных - щелкнуть правой кнопкой мыши по закладке существующего запроса и выбрать из контекстного меню пункт "Дублировать закладку". Сделайте это сейчас и измените метод запроса на "PUT".
Затем выберите " Save As..." из выпадающего списка рядом с кнопкой " Save" (Сохранит.), чтобы сохранить его как новый запрос к вашей коллекции:
Далее заполните URL-адрес, куда вы хотите поместить данные (он будет называться "конечная точка" или "конечная точка API").
Выберите закладку " Body " в разделе заявки. Это позволит вам выбрать тип контента. По умолчанию он будет установлен на "none", т.к. тело сообщения отсутствует. Измените это значение, выбрав "raw" в качестве типа содержимого тела, и вставьте CSV-данные a,b,c,d в новое текстовое поле, которое появится после выбора типа содержимого.
После того, как все готово, нажмите кнопку Send (Отправить).
Затем вернитесь к вашему предыдущему запросу (" example GET file") и отправьте его еще раз, чтобы убедиться, что данные были обновлены. Теперь он должен показать CSV-данные, которые вы только что отправили в ответе:
Теперь, если Вы не хотите изменять весь CSV-список, но только одну запись - например, Вы хотите заменить "c" на " three" - тогда Вы можете использовать метод PATCH.
PATCH
Синтаксис исправляющих записей может сильно варьироваться в зависимости от API или веб-сервисов. Подробности вы узнаете позже в этом курсе, API могут использовать такие стандарты, как JSON, XML или даже проприетарные форматы.
Обратите внимание, что, как и в предыдущем примере PUT-запроса, PATCH использует для данных сообщений текстовое тело.
При дублировании предыдущего запроса "PUT-данных", измените путь на patchdata.php, HTTP метод на "PATCH", и измените текст тела (2=Charlie).
Затем нажмите кнопку " Send ", чтобы отправить его, чтобы получить результат на картинке.
Не забудьте использовать "Save as...", чтобы потом сохранить его как новый запрос, и не перезаписывайте оригинал.
Если после этого вы запросите данные с помощью предыдущего запроса "Пример GET-файла", то он должен выглядеть следующим образом:
Не забудьте сохранить новый запрос PATCH в своей коллекции, прежде чем переходить к следующему методу.
В этом примере конечная точка 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 " для тела запроса.
Введите две клавиши: "firstname" и "city", и введите любые значения по вашему выбору.
Полный запрос должен выглядеть следующим образом:
Когда вы отправляете запрос, нажимая кнопку " Send " (Отправить), в ответе должно появиться подтверждение, и в данном примере в ответе также содержатся отправленные данные:
Возможно, вы уже заметили кнопку " Code " (Код).
При нажатии на него вы увидите опции для преобразования данных запроса в различные форматы для экспорта:
Если вы выберете "HTTP" из выпадающего списка слева вверху, вы увидите необработанный http-запрос - в том виде, в котором он был получен сервером.
Также есть возможность позволить Postman генерировать фрагменты кода для различных языков программирования, таких как PHP, Java, Python...
DELETE
В нашем случае, вы тоже можете:
- Вызвать конечную точку DELETE с индексом, как описано выше, чтобы удалить определенную запись из списка.
- Или просто вызовите его без каких-либо параметров, чтобы удалить весь список.
Давайте удалим какую-нибудь запись:
Создадим новый запрос и сохраним его в своей коллекции как "DELETE data".
Опять же, используйте необработанное тело и введите индекс входа в список, который вы хотите удалить.
Из предыдущего примера данные в списке должны быть a,b,Charlie,d.
Если вы подаете запрос DELETE с индексом 1, то вторая запись должна быть удалена, так чтобы получившийся список стал: a,Charlie,d.
В случае, если у вас другой результат, сначала отправьте предыдущий запрос PUT, чтобы восстановить исходные значения:
Полный запрос на DELETE:
Чтобы убедиться, что запрос был успешным, повторно вызовите предыдущий GET-запрос: