Коды состояния HTTP, используемые этим API, были реализованы с использованием стандартов, предоставленных в спецификации HTTP 1.1 RFC2616.
200 – ОК [GET, PUT и DELETE]
- Тело объекта — ресурс
- Пример — [GET] People/1
201 — Ресурс создан [POST]
- Заголовок ответа — Location будет содержать канонический URI
- Тело объекта — новый ресурс
- Пример — [POST] Люди
204 – Нет контента [POST, DELETE]
- Заголовок ответа — ответное сообщение будет содержать канонический URI ресурса, который был удален, или в случае создания учетной записи будет пустым.
- Тело объекта — будет пустым
- Пример — [DELETE] /People/1636208/Attributes/29717636
301 — переехал навсегда
- Заголовок ответа — Location будет содержать новый постоянный канонический URI.
- Тело объекта — будет пустым
- Пример — [GET] People/1 был объединен и больше не существует. Новый URI — People/1.
400 — Неверный запрос: ошибка на стороне клиента.
- Заголовок ответа — без изменений
- Тело объекта — отправить обратно сообщение о том, почему запрос был плохим
- Пример — искаженный XML не может сериализоваться на сервере
401 — Неавторизованный
- Заголовок ответа — WWW-Authenticate: OAuth и запрос или требуемый параметр
- Тело объекта — опционально документ с описанием сбоя.
- Пример: отсутствуют учетные данные OAuth
403 — Запрещено — Ошибка авторизации
- Заголовок ответа — без изменений
- Тело объекта — объяснение, почему авторизация не удалась
- Примеры:
- Учетные данные OAuth верны, однако токен, использованный для запроса, недействителен или пользователь, связанный с токеном, не имеет прав на ресурс.
- Потребитель использует сторонний ключ и секрет и пытается запросить токены доступа, используя учетные данные пользователя.
- Когда приложение-потребитель может принимать запросы на токены только от исходного поставщика или ключ потребителя для этого приложения либо помечен как закрытый, либо недоступен для арендатора.
404 — Не найдено: когда клиент запрашивает URI, который не соответствует ресурсу на сервере.
- Заголовок ответа — без изменений
- Тело объекта — будет пустым
- Пример — [GET] People/1 не существует, при желании можно использовать 410 (см. ниже)
405 — Метод не разрешен
- Заголовок ответа — Разрешить: GET, POST — список методов HTTP, которые поддерживает ресурс.
- Тело объекта — будет пустым
- Пример — [POST] People/1/Status ← попытка создать статус, когда доступен только GET
406 — не приемлемо
- Заголовок ответа — объяснение того, что сделало запрос неприемлемым.
- Тело объекта — будет пустым
- Пример — установка заголовка Accept-Encoding неизвестного типа
409 – Конфликт: клиент пытался перевести ресурс сервера в невозможное или несовместимое состояние.
- Заголовок ответа — объяснение проблемы с кодом состояния
- Тело объекта — будет пустым
- Пример. Попытка добавить основной адрес к ресурсу, у которого уже есть основной адрес, или PUT People/1, изменяющие учетные данные «веб-ссылки» для People/1, которые уже используются People/2.
410 — Исчез: сервер знал, что раньше был ресурс, но теперь его нет
- Заголовок ответа — HTTP/1.1 410 Объект ИСКЛЮЧЕН, поскольку он был удален. Клиенты с возможностью редактирования ссылок ДОЛЖНЫ удалять ссылки на Request—URI.
- Тело объекта — будет пустым
- Пример — [DELETE] People/1/Addresses/1, затем GET People/1/Addresses/1
415 — Неподдерживаемый тип носителя
- Заголовок ответа — подробный код поддерживаемых типов мультимедиа для данного ресурса.
- Тело объекта — будет пустым
- Пример. Ресурс поддерживает только XML и JSON, но клиент отправляет application/atom+xm
500 — внутренняя ошибка сервера
- Заголовок ответа — без изменений
- Тело объекта — будет пустым
- Пример. Сервер столкнулся с непредвиденной ситуацией, из-за которой он не смог выполнить запрос.