собственные API-интерфейсы REST Google, возвращают подробный ответ в случае ошибки, например:Повторные причины ошибки НТТР в Google Cloud Endpoints
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalidBookshelfId",
"message": "Invalid bookshelf ID."
}
],
"code": 400,
"message": "Invalid bookshelf ID."
}
}
В Google Cloud Endpoints для Python, это возможно, например, raise endpoints.BadRequestException('Error message')
, но в дополнение к сообщению об ошибке я хотел бы вернуть «код» или «причину», как в примере выше. Есть ли способ достичь этого?
Могут быть разные условия ошибки, связанные с одним и тем же кодом состояния HTTP. Если клиент API хочет действовать по-разному на этих условиях ошибки, как мы можем различать их? Конечно, клиент может разобрать сообщение, но он чувствует себя взломанным. Было бы лучше иметь отдельные поля для сообщения и кода ошибки/причины. – Docent
Проблема заключается в том, что сообщение требует ручного анализа строк на стороне клиента, либо вынуждая его создавать исключения на своем конце, а затем обрабатывать или анализировать строки на уровне API. –