An example of API written in Rust with the rocket.rs framework, with a JWT Authentication
Requirements
- Configure Rust to satisfy rocket.rs dependencies
Installation
- First run the migration
diesel migration run
- Compile the code setting the DATABASE_URL environment variable
export DATABASE_URL=mysql://username:password@localhost/heroes && cargo run
API
/auth/login
Get a jwt token for the user marcocastignoli
curl -X POST \ http://localhost:8000/auth/login \ -H 'content-type: application/json' \ -d '{ "username": "marcocastignoli", "password": "12345" }'
/user
Call a protected route (use the token returned from the /auth/login API)
curl -X GET \
http://localhost:8000/user \
-H 'authentication: eyJ0eXAiOiJKV1QiLCJraWQiOm51bGwsImFsZyI6IkhTMjU2In0.eyJpc3MiOm51bGwsInN1YiI6Im1hcmNvY2FzdGlnbm9saSIsImF1ZCI6bnVsbCwiZXhwIjpudWxsLCJuYmYiOm51bGwsImlhdCI6bnVsbCwianRpIjpudWxsfQ.fnp0D8Qh1bTFv1zKTVGAxwjtyTCOqKuarRzBQabjiCI'Thanks
Special thanks to @sean3z for this repo https://github.com/sean3z/rocket-diesel-rest-api-example and this tutorial https://medium.com/sean3z/building-a-restful-crud-api-with-rust-1867308352d8