#7 Изменение клиентских данных ~ 10 мин
В предыдущем упражнении (#6) мы создавали нового клиента. Это означает, что теперь у нас есть объект, которым мы можем начать манипулировать. В этом уроке мы рассмотрим конечную точку PUT. Вам потребуются все навыки, полученные в упражнениях 3.6 «Запрос информации по одному клиенту» и 3.8 «Создание клиента». Для управления объектом требуется использование комбинации path- и body-параметров.
Итак, как мы будем действовать?
- Мы используем GET /customers для получения списка всех существующих клиентов
 - Мы выбираем клиента и из вывода копируем идентификатор клиента, данные которого хотим изменить
 - Мы используем конечную точку PUT /customers/{id} для управления данным клиентом
 - Мы используем конечную точку GET /customers, чтобы проверить результаты
 
Упражнение:
- Сперва мы выбираем клиента, данные которого хотим изменить. Открываем Httpie.io
 - Выводим список всех клиентов, используя GET /customers. Обращаемся к упражнению #3, если встречаемся со сложностями в выполнении этого задания
 - Копируем «id» – идентификатор клиента которого хотим изменить. Будет замечательно, если вы выберете именно того клиента, которого создали в предыдущем упражнении
 - Обратимся к спецификации на портале
 - Просмотрите документацию по эндпоинту PUT /customers/{id}. В разделе «Parameters» вы заметите, что эта конечная точка имеет два параметра, помеченных как обязательные: идентификатор (параметр пути | path-parameter) и request body (тело запроса, для которого требуется передать данные в формате JSON)
 - Переключитесь на Httpie.io и откройте новый запрос (это означает, что ваш запрос GET должен оставаться открытым)
 - Выберите PUT в качестве метода HTTP. Помните, что конечные точки PUT предназначены для управления ресурсами
 - Скопируйте базовый путь API и ресурс эндпоинта /customers/{id}
 - Замените значение {id} конкретным идентификатором, скопированным на шаге 3 этого упражнения
 - 
                        Теперь пришло время добавить содержимое JSON:
                        
- Переключитесь в Httpie.io на вкладку параметра «Body»
 - Выберите «raw»
 - Переключитесь на ввод «JSON» в раскрывающемся списке
 
 - Самый простой способ ввести правильные значения в параметры API — скопировать из примеров Swagger. Это дает нам уверенность, что мы не допускаем опечаток, и экономим время на просмотре сообщений об ошибках. Вы найдете его в разделе «Parameters» и «Request body» конечной точки PUT /customers/{id}. Скопируйте его и вставьте пример JSON в Httpie.io
 - Измените данные по своему вкусу. Заполните значения для полей firstName и lastName, поле Born должно иметь формат «ГГГГ-ММ-ДД» (но это не точно). Дважды проверьте схему в Swagger спецификации. Если вы не знаете, как проверить схему, обратитесь к упражнению #2 «Читаем Swagger»
 - Нажимаем кнопку Send
 - Проверьте статус код HTTP. Это должно быть HTTP 200. Это говорит вам, что вызов был успешным. Всегда проверяйте ответ сервиса против документации Swagger в разделе «Responses»
 - Вернитесь к вашему GET-запросу (если вы правильно выполнили шаг 6, GET-запрос все еще должен быть открыт на другой вкладке)
 - Выполните GET ещё раз
 - Вы должны увидеть, что данные изменились в соответствии с данными, введенными на шаге 12. Поздравляем! :)
 
Подсказки
- 
                        Для изменения данных выбирайте HTTP метод PUT
                        
- Убедитесь, что вы используете PUT и никакой другой метод HTTP
 - Согласно спецификации RFC-2616, метод PUT либо обновляет, либо создает ресурс, когда он не существует.
 
 
Хозяйке на заметку
- Метод PUT используется, когда требуется полностью заменить ресурс. Если требуется изменить только часть данных ресурса, используйте метод PATCH (RFC-5789). Интересная статья на тему
 - PUT имеет возможности, аналогичные POST, так как PUT также может создавать ресурс, когда он не существует. Чтобы увидеть их различия, пожалуйста, прочитайте эту статью
 
