本プロジェクトの目標は、Rust で REST API の雛形を作ることです。私の知識の可能な限りクリーンアーキテクチャを意識しています。
- CRUD with Axum
- JWT Token Authentication 🔒
- OAuth2
VS Code Dev Container 拡張をインストールし、以下のファイルを作成することで、ローカルマシンに OCI コンテナを立て Rust 開発環境を構築します。
- .devcontainer/devcontainer.json
- .devcontainer/docker-compose.yml
- .devcontainer/Dockerfile
初回は時間がかかりますが二回目以降は Attach するだけなので時間はかかりません。
VS Code 編集画面 fn main() の直上の ▶ Run をクリック。もしくは以下のコマンドを実行。
デバッグ用 ⚙️
cargo build本番用 📦
cargo build --releasecurl --location --request POST 'http://localhost:4000/user' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Your Name",
"email": "your_email@example.com",
"password":"password"
}'curl --location --request POST 'http://localhost:4000/login' \
--header 'Content-Type: application/json' \
--data-raw '{
"email": "your_email@example.com",
"password":"password"
}'curl --location 'http://localhost:4000/user' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIzZTJkMTQyZC01OGZlLTRiOWEtYjZkYi0wMTlmODI0YjRkNTkiLCJleHAiOjE3MzIwMjE5NTl9.l27mHiTGb0Ghx0s1vlQuccb99llcdo-MCSuNMSgRPds'curl --location --request PUT 'http://localhost:4000/user' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIzZTJkMTQyZC01OGZlLTRiOWEtYjZkYi0wMTlmODI0YjRkNTkiLCJleHAiOjE3MzIwMjE5NTl9.l27mHiTGb0Ghx0s1vlQuccb99llcdo-MCSuNMSgRPds'
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Your Name",
"email": "new_your_email@example.com"
}'MIT License.