-
[rust] axum 과 utoipa 로 swagger를 지원하는 web api 구현 예제Rust 2024. 9. 18. 14:18반응형
Axum은 Rust 언어를 위한 웹 애플리케이션 프레임워크로 사실상 표준 비동기 프로그래밍 라이브러리로 받아들여지는 Tokio를 만든 Tokio-rs 에서 개발하였다.
Rust 생태계의 대표 웹 프레임워크인 Rocket 과 Actix 에 비해 비교적 최근에 릴리즈 되었다. 그래서인지 utoipa 를 통한 swagger 적용이 원할하지 않았다.
몇 시간의 삽질 끝에 예제가 될만한 구현작업을 완료할 수 있었다. 아래 리포지토리는 axum에서 swagger ui 가 동작할 수 있도록 예시형식으로 구현한 브랜치이다.
ddochea0314/template-axum-webapi (github.com)
GitHub - ddochea0314/template-axum-webapi
Contribute to ddochea0314/template-axum-webapi development by creating an account on GitHub.
github.com
실행 후 브라우저에서 http://localhost:3000/swagger 접속시 2개의 get endpoint를 제공하는 swagger-ui가 나온다.
실행하면 코드에 설정된 값이 나온다. 처음엔 랜덤한 데이터를 표기하도록 구현하려 했으나, random 마저 별도 크레이트(crate)로 받아야 해서 그냥 동일한 값으로 구현했다.
반응형'Rust' 카테고리의 다른 글
[rust] tokio 비동기 동시 처리 기본 예시 코드 (0) 2024.11.24 [rust] tokio, bb8, tokio_postgres DB 연결 예시 코드 (0) 2024.11.24 [rust] 규칙에 맞는 프로젝트 템플릿을 통해 새로운 rust 프로젝트 생성을 돕는 cargo-generate (2) 2024.11.10