Фильтрация методов запроса в 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