Шлюз API и пользовательский интерфейс Swagger

В настоящее время у меня есть API с несколькими ресурсами в нашем шлюзе API, я работаю над страницей пользовательского интерфейса Swagger для того же.

Многие определения пользовательского интерфейса swagger я написал сам, хотя я знаю, что есть функциональность экспорта - она ​​еще не готова на 100%.

При использовании кнопки Try it out из swagger, если я возвращаю 200, это отлично обрабатывается, и результат показывает, как и ожидалось. Я пытаюсь отобразить коды ошибок, и здесь я застрял.

В API Gateway я создал 401 в моем Method response, включая некоторые разрешенные заголовки, это используется в моем Integration Response для HTTP status regex из Unauthorized.* - содержимое этого просто передается.

Мой ответ на определение пользовательского интерфейса swagger выглядит следующим образом (в частности, для 401):

"401": {
"description": "Unauthorized",
        "headers": {
            "Access-Control-Allow-Origin": {
            "type": "string"
                   }
        }
},

Это просто ожидание строкового ответа. В моих "продуктах" есть все необходимое, на всякий случай;

"produces": ["application/json",
            "text/json",
            "application/xml",
            "text/xml"],

Результат через инспектор правильный - введите здесь описание изображения

Однако мое чванство все еще производит это:

введите здесь описание изображения

Я пробовал множество вещей, включая присвоение объекта типу ответа, изменение выражения регулярного выражения на 4\d{2}, чтобы поймать любую ошибку 400, обновление определения, которое выдает - все безуспешно.

Дайте мне знать, если есть какая-либо другая информация, необходимая для помощи.


person Hexie    schedule 14.12.2016    source источник


Ответы (1)


Я предполагаю, что вы используете пользовательский авторизатор или авторизатор Cognito, и это то, что создает 401?

К сожалению, существует известное ограничение, при котором методы ошибок, такие как 401 или 403 от авторизатора, не будут содержать настроенные сопоставления заголовков.

person Bob Kinney    schedule 24.12.2016
comment
Как насчет других ошибок или ответов (например, 500/429 и т. д.) Кроме 200, никаких других ответов не выдается (я знаю, что они происходят только при проверке сети страниц) - person Hexie; 24.12.2016
comment
Ошибки, генерируемые шлюзом API (например, 500 или 429), будут иметь такое же поведение. - person Bob Kinney; 02.01.2017
comment
То есть, по сути, вы говорите, что, если только 200... я не получу никаких других ответов по этому сценарию? - person Hexie; 02.01.2017
comment
Нет, если ваш сервер генерирует не-200, то все работает как положено. Эта проблема возникает, если не-200 генерируется шлюзом API (отказ в доступе, внутренняя ошибка, регулирование и т. д.). - person Bob Kinney; 03.01.2017
comment
Привет, Боб, просто проверяю, что это все еще ограничение, и никакое исправление еще не реализовано? - person Hexie; 10.04.2017
comment
@Hexie, к сожалению, да, это все еще ограничение. Мы работаем над решением этой проблемы, но я не могу указать сроки, когда оно будет доступно. - person Bob Kinney; 10.04.2017
comment
Всем, кто столкнулся с этой проблемой, см. дополнительную информацию в следующих темах: github. com/swagger-api/swagger-ui/issues/3403 и forums.aws.amazon.com/thread.jspa?messageID=728839 - person Hexie; 19.07.2017
comment
Наконец ограничение исправлено. - person olpa; 28.08.2017