Как получить код ошибки 503 вместо 504, когда мой API не работает? - PullRequest
0 голосов
/ 15 апреля 2019

Я разработал свой API и зарегистрировался в mule API Manager.

Когда мой API не работает и пытается запустить API из инструмента Почтальон, появляется ошибка ниже.

<html>
    <head>
        <title>504 Gateway Time-out</title>
    </head>
    <body bgcolor="white">
        <center>
            <h1>504 Gateway Time-out</h1>
        </center>
        <hr>
        <center>nginx</center>
    </body>
</html>

В идеале это должно быть 503 - Сервис недоступен. Любые варианты, чтобы получить код ошибки 503 вместо 504?

Ответы [ 2 ]

1 голос
/ 15 апреля 2019

Если ваш API в менеджере API не работает, вы ничего не можете сделать. Если ваша внутренняя реализация не работает, вы можете сделать что-нибудь, чтобы политики переопределили код состояния.

Но поскольку ваш API в менеджере API не работает, вы ничего не можете контролировать.

504 все еще технически допустим, поскольку nginx действует как прокси и не может получить доступ к вашему API.

Но я бы не волновался об этом. Все API-клиенты должны обрабатывать код состояния 5XX одинаково. Как и в «Ошибка сервера» и может быть повторена позже.

Кроме того, с API в диспетчере API, 504 должно занять некоторое время, чтобы получить ответ. Так что я бы, вероятно, установил приличный тайм-аут запроса до достижения этой точки.

0 голосов
/ 15 апреля 2019

Это действительно не под вашим контролем. Разница между 503 и 504 состоит в том, что 503 означает, что у вашего сервера приложений есть проблемы, а 504 означает, что у используемого вами шлюза есть проблемы.

Например, если я использую nginx в качестве шлюза и перенаправляю на какой-либо сервер приложений. Если сервер приложений не работает, то nginx вернет 503. Однако, если сервер приложений не отвечает, или если сам nginx не работает (из-за загрузки или других проблем), ответ будет 504.

В общем, вы не должны беспокоиться о том, каков будет ответ. В большинстве ситуаций 5xx обрабатываются примерно одинаково, и они означают проблемы с сервером.

...