RESTful API template built with Rust lang. It uses MongoDB database and Axum HTTP framework.
- Authentication. Based on jsonwebtoken
- Layered configuration. Based on config-rs
- Logs. Based on tracing
- Error handling
- Pagination
- E2E Tests
- OpenAPI generator and swagger UI. Based on utoipa and utoipa-swagger-ui
- CI based on Github actions
- Dependabot configuration
├── Cargo.lock
├── Cargo.toml
├── README.md
├── config
│ ├── default.json # Default configuration
│ ├── production.json # Production configuration (Overwrites the default)
│ └── test.json # Test configuration (Overwrites the default)
├── rustfmt.toml
├── src
│ ├── database.rs
│ ├── errors.rs
│ ├── lib # Helpers not related to the business model
│ │ ├── authenticate_request.rs
│ │ ├── date.rs
│ │ ├── mod.rs
│ │ ├── models.rs # Base Database Model trait
│ │ ├── to_object_id.rs
│ │ └── token.rs
│ ├── logger.rs
│ ├── main.rs
│ ├── models
│ │ ├── cat.rs
│ │ ├── mod.rs
│ │ └── user.rs
│ ├── routes
│ │ ├── cat.rs
│ │ ├── mod.rs
│ │ ├── status.rs
│ │ └── user.rs
│ ├── settings.rs
│ └── tests # E2E Tests
└── test.sh
To run tests make sure MongoDB is up and running.
make test
Contributors are welcome, please fork and send pull requests! If you find a bug or have any ideas on how to improve this project please submit an issue.