Большая задача

parcels-delivered

Пришло время для большого испытания!

Нам предстоит пройтись по чек-листу и доставить свой первый межгалактический заказ.


Требования и описание API

Межгалактический курьер должен иметь возможность:

  • Запрашивать список всех доступных для доставки заказов, таковыми считаются только заказы в статусе CREATED (создано), заказы в других статусах не должны быть отображены.
  • Запрашивать подробную информацию о заказе по идентификатору заказа, ответ должен содержать описание заказа, имя и адрес отправителя и получателя, дополнительные поля опционально.
  • Самостоятельно создавать заказ, заполняя поля согласно описанию API. При этом для каждого нового заказа на сервере должен быть сгенерирован уникальный идентификатор, каждый новый заказ создаётся в статусе CREATED.
  • Обновлять статус заказа.

Метод Эндпоинт Описание Пример запроса
GET /deliveries Получить информацию обо всех доставках в статусе создано. https://www.tester-today.com/postman-task/deliveries
GET /deliveries/{id} Получить информацию о доставке по идентификатору заказа. Идентификатор указывается в виде переменной пути, в ответе возвращаются подробные данные о заказе. https://www.tester-today.com/postman-task/deliveries/1
POST /deliveries Создать новый заказ, данные заказа должны быть указаны в теле запроса в формате JSON, идентификатор будет сгенерирован автоматически.
Поле Тип Обязате-
льность
Ограничения
description строка + от 1 до 50 символов
from.name строка + от 1 до 30 символов
from.address строка + от 1 до 50 символов
to.name строка + от 1 до 30 символов
to.address строка + от 1 до 50 символов
client_comment строка - до 50 символов
courier_comment строка - до 50 символов
https://www.tester-today.com/postman-task/deliveries
{
    "description": "Пирожки",
    "from":  {
        "name": "Мама кота-астронавта",
        "address": "Земля"
    },
    "to":  {
        "name": "Кот-астронавт",
        "address": "Марс, фабрика 1"
    }
}
PUT /deliveries/{id} Обновить статус заказа. Для этого необходимо указать идентификатор заказа в виде переменной пути и обновленный статус в теле запроса в формате JSON.
Поле Тип Обязате-
льность
Ограничения
status строка + CREATED, IN_PROGRESS, DELIVERED, CANCELLED
courier_comment строка - до 50 символов
https://www.tester-today.com/postman-task/deliveries/1
{
    "status": "DELIVERED"
}

Задача

Необходимо протестировать API согласно списку проверок в чек-листе. При выполнении запросов пользователь должен указывать данные своей учётной записи в Заголовке Authorization с типом Basic Auth (см. пример в предыдущей задаче).

Не забывайте сверять информационные ответы сервера с фактическим изменением данных заказа, вызывая запрос подробной информации по идентификатору заказа.

При желании, можете дополнить чек-лист собственными проверками, например, используя методику тестирования чёрным ящиком, убедиться что все диапазоны значений соответствуют требованиям.