Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tranquangvu/rust-actix-sample-api
Build simple API with actix framework
https://github.com/tranquangvu/rust-actix-sample-api
Last synced: about 2 months ago
JSON representation
Build simple API with actix framework
- Host: GitHub
- URL: https://github.com/tranquangvu/rust-actix-sample-api
- Owner: tranquangvu
- Created: 2019-09-19T04:04:18.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-09-27T10:24:40.000Z (over 5 years ago)
- Last Synced: 2024-11-09T20:44:06.768Z (3 months ago)
- Language: Rust
- Size: 27.3 KB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Rust Sample API
Practice rust language by building sample API by actix framework## Install
* Make sure you have installed Rust
```
curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
export PATH="$HOME/.cargo/bin:$PATH"
```
* Clone this source code
* Add `.env` (Refer from `.env.example`)
* Build app
```
cargo build
```
* Setup `diesel_cli` and init database
```
cargo install diesel_cli
diesel setup
diesel migration run
```
* Make some seed data
```
psql -U postgres -d mystore -c "INSERT INTO products(name, stock, price) VALUES ('shoes', 10.0, 100); INSERT INTO products(name, stock, price) VALUES ('hats', 5.0, 50);"
```
* Start server
```
cargo run
```
Server run on `127.0.0.1:8000`
* Example requests
- Get all products
```
curl http://127.0.0.1:8000/products
```
- Create products
```
curl http://127.0.0.1:8000/products -H "Content-Type: application/json" -d '{"name": "socks", "stock": 7, "price": 2}'
```
- Show product
```
curl http://127.0.0.1:8000/products/1
```
- Update product
```
curl -X PATCH http://127.0.0.1:8000/products/1 -H "Content-Type: application/json" -d '{"stock": 8}'
```
- Delete product
```
curl -X DELETE http://127.0.0.1:8000/products/1 -H "Content-Type: application/json"
```