Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/taeyoonkwon/rust-rocket-sample

Fully working CRUD REST API example using Rust and Rocket.rs
https://github.com/taeyoonkwon/rust-rocket-sample

boilerplate mongodb okapi rest-api rocket rust template

Last synced: 6 days ago
JSON representation

Fully working CRUD REST API example using Rust and Rocket.rs

Awesome Lists containing this project

README

        

# rust-rocket-sample
[![CI](https://github.com/TaeyoonKwon/rust-rocket-sample/actions/workflows/ci.yaml/badge.svg)](https://github.com/TaeyoonKwon/rust-rocket-sample/actions/workflows/ci.yaml)

Fully working CRUD REST API example using
- Rust (stable)
- Rocket.rs
- mongodb
- okapi

## 🚀 Features
- Establish MongoDB connection using rocket Adhoc fairing.
- Custom error handlings with rocket Responder and okapi OpenApiGenerator.
- CORS fairing and Counter fairing to demonstrate how fairing works.
- Example model Customer to demonstrate how Rust structs interact with MongoDB.
- Request guard using ApiKey.
- REST API endpoints with simple CRUD using Customer model.
- Implement Open API documentation using okapi.
- Test codes to test API endpoints.

## 🔧 Building and Testing

### debug mode
> cargo run

### release mode
> cargo build --release && cargo run --release

### unit testing
> cargo test


ℹī¸ _You should create your own `.env` file including `MONGO_URI`, `MONGO_DB_NAME`, and `API_KEY` to run it._

## 📑 License
[MIT](https://github.com/TaeyoonKwon/rust-rocket-sample/blob/main/LICENSE) Copyright (c) 2022 Taeyoon Kwon