Я хочу сделать асинхронный HTTP-вызов внешней службе при запуске сервера и получить оттуда URL-адрес, который затем я могу использовать в своей собственной маршрутизации Sanic. Например, получить строку, которая должна быть моим фактическим маршрутом, с помощью вызова httpx
(для простоты предположим, что строка, возвращаемая внешней службой, равна api/users/
), а затем использовать ее в качестве маршрута в моем микросервисе Sanic.
К сожалению, кажется, что прослушиватель before_server_start
не помогает, так как он запускается после загрузки маршрутов, и я получаю FinalizationError("Cannot finalize router more than once.")
, если пытаюсь обновить строковое значение маршрута.
Любые идеи о том, как еще я мог бы подключить свой вызов перед определением/добавлением маршрутов? Я хотел бы сохранить его как можно более связанным с приложением Sanic, т. Е. Не использовать служебный скрипт, который будет запускаться перед ним, а вместо этого запускать вызов внешней службы каждый раз при запуске приложения.