Hyperlane의 Request Method 필터링
웹 애플리케이션은 GET, POST, DELETE와 같은 다양한 HTTP 메서드를 처리합니다. Hyperlane은 이러한 요청을 필터링할 수 있는 여러 가지 방법을 제공합니다. 요청을 특정 핸들러로 라우팅하거나 미들웨어를 사용하여 메서드를 확인할 수 있습니다.
Hyperlane에서 메서드를 필터링하는 방법은 다음과 같습니다:
단순한 읽기 전용 엔드포인트에는 #[is_get_method]를 사용하세요. 이 매크로는 GET 요청이 아닌 모든 요청을 거부합니다.
유연한 라우팅을 위해 #[methods]를 사용하세요. 허용된 메서드 목록을 전달할 수 있습니다. 예를 들어, #[methods("GET", "POST")]는 데이터 읽기와 생성을 모두 허용합니다.
복잡한 로직에는 수동 확인 방식을 사용하세요. 컨텍스트에서 메서드를 가져와 if-else 문을 사용하여 응답 방식을 결정할 수 있습니다.
라우트 수준의 제어를 위해 #[filter]를 사용하세요. 이를 라우트 정의와 결합하여 동일한 경로에 대해 서로 다른 메서드에 대한 특정 핸들러를 생성할 수 있습니다.
로깅 또는 디버깅을 위해 미들웨어를 사용하세요. 메서드를 추출하여 요청 속성에 추가할 수 있습니다.
API를 위한 권장 사항:
- 코드를 깔끔하게 유지하려면 읽기 전용 작업에 #[is_get_method]를 사용하세요.
- 엔드포인트에 하나 이상의 요청 유형이 필요한 경우 #[methods]를 사용하세요.
- 사용자가 지원되지 않는 메서드를 전송하는 경우 405 상태 코드를 반환하세요.
- 필터를 결합하여 엄격한 규칙을 만드세요. 메서드, 호스트, 경로 길이를 한 번에 확인할 수 있습니다.
이러한 도구들은 깔끔하고 체계적인 API를 구축하는 데 도움이 됩니다. 또한 코드를 더 읽기 쉽고 유지 관리하기 쉽게 만들어 줍니다.
Project Code: https://github.com/hyperlane-dev/hyperlane
Source: https://dev.to/tengxgfyrz67s/request-method-filtering-35jk