Фильтрация методов запроса в Hyperlane

Веб-приложения обрабатывают различные HTTP-методы, такие как GET, POST и DELETE. Hyperlane предоставляет несколько способов фильтрации этих запросов. Вы можете направлять запросы к определенным обработчикам или использовать middleware для проверки методов.

Вот способы фильтрации методов в Hyperlane:

  • Используйте #[is_get_method] для простых эндпоинтов только для чтения. Этот макрос отклоняет любой запрос, который не является GET-запросом.

  • Используйте #[methods] для гибкой маршрутизации. Вы можете передать список разрешенных методов. Например, #[methods("GET", "POST")] позволяет как читать, так и создавать данные.

  • Используйте ручные проверки для сложной логики. Вы можете извлечь метод из контекста и использовать операторы if-else, чтобы решить, как ответить.

  • Используйте #[filter] для управления на уровне маршрутов. Вы можете комбинировать это с определениями маршрутов, чтобы создавать специфические обработчики для различных методов по одному и тому же пути.

  • Используйте middleware для логирования или отладки. Вы можете извлечь метод и добавить его к атрибутам вашего запроса.

Лучшие практики для вашего API:

  • Используйте #[is_get_method] для задач только для чтения, чтобы поддерживать чистоту кода.
  • Используйте #[methods], когда эндпоинту требуется более одного типа запроса.
  • Возвращайте статус-код 405, если пользователь отправляет неподдерживаемый метод.
  • Комбинируйте фильтры для создания строгих правил. Вы можете одновременно проверять метод, хост и длину пути.

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

Project Code: https://github.com/hyperlane-dev/hyperlane

Source: https://dev.to/tengxgfyrz67s/request-method-filtering-35jk