RESTful API template built with Rust lang. It uses MongoDB database and Axum HTTP framework.
To use this template as your project starting point, click "Use this template" at the top of this page, or click here.
- Authentication. Based on jsonwebtoken
- Layered configuration. Based on config-rs
- Logs. Based on tracing
- Error handling
- Pagination
- E2E Tests
- OpenAPI Specification
- 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.
./test.sh
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.