Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/louis030195/rustlang-rocket-diesel-mysql-hero-api
Rust simple REST API with mysql
https://github.com/louis030195/rustlang-rocket-diesel-mysql-hero-api
api mysql rocket rust rust-lang
Last synced: 17 days ago
JSON representation
Rust simple REST API with mysql
- Host: GitHub
- URL: https://github.com/louis030195/rustlang-rocket-diesel-mysql-hero-api
- Owner: louis030195
- Created: 2019-10-08T09:57:19.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-06-14T16:13:40.000Z (over 1 year ago)
- Last Synced: 2024-12-20T12:12:27.612Z (22 days ago)
- Topics: api, mysql, rocket, rust, rust-lang
- Language: Rust
- Homepage:
- Size: 62.5 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# rustlang-rocket-diesel-mysql-hero-api
based on [blog post](https://medium.com/sean3z/building-a-restful-crud-api-with-rust-1867308352d8) and the updated [version](https://github.com/clifinger/rustlang-rocket-diesel-mysql-hero-api) + instructions## Usage
### Mysql installation (At least in my case Ubuntu 19.04)
sudo apt-get install libmysqlclient-dev # Needed or not?
sudo apt-get install mysql-server
sudo service mysql start
# Changing password
sudo mysql -u root -p
use mysql;
update user set authentication_string=PASSWORD("new_password") where user='root';
update user set plugin="mysql_native_password";
flush privileges;
quit;
sudo service mysql restart
### Run
cargo install diesel_cli --no-default-features --features mysql
export DATABASE_URL=mysql://root:new_password@localhost/heroes
diesel setup
diesel migration run
cargo run
thencurl -d '{"id":"1", "name":"a", "identity":"b", "hometown":"c", "age":1}' -H "Content-Type: application/json" -X POST http://localhost:8000/hero
if you want to reprint schema
diesel print-schema > src/schema.rs
# Performances with [wrk](https://github.com/wg/wrk)sudo apt-get install build-essential libssl-dev git -y
git clone https://github.com/wg/wrk.git wrk
cd wrk
make
# move the executable to somewhere in your PATH, ex:
sudo cp wrk /usr/local/bin
thencargo run &
then
wrk -t2 -c5 -d5s --timeout 2s http://localhost:8000/heroes