f3cf37bb0d
closes #624 |
||
---|---|---|
.. | ||
apis | ||
sql | ||
src | ||
Cargo.toml | ||
README.md |
MySQL
This RESTful Actix Web API examples illustrates how to connect to MySQL database using a MySQL client library implemented in Rust; e.g., MySQL database driver.
Below APIs are supported:
- Add Bank
- Add Branch
- Add Teller
- Add Customer
- Get Bank
- Get Branch
- Get Teller
- Get Customer
The RESTful Actix Web API has below listed dependencies:
- Actix Web web framework for Rust
- Serde for serializing and deserializing Rust data structures
- MySQL Server MySQL database server
- MySQL MySQL database driver
Instructions
NOTE:
You may need to ensure that you are running the commands with the correct MySQL user/password.
-
Access MySQL Server:
Log in to the MySQL Server using a user account that has the
CREATE DATABASE
privilege. -
Create database:
CREATE DATABASE my_bank;
-
Create tables in the database:
The
sql
directory contains below listed ".sql" files:bankdetails.sql
branch_details.sql
teller_details.sql
customer_details.sql
Copy the contents of each of the ".sql" and execute them separately on MySQL Server. This will create four tables in the database.
-
Create
.env
file:SERVER_ADDR=127.0.0.1:8080 MYSQL_USER=XXX MYSQL_PASSWORD=XXX MYSQL_HOST=127.0.0.1 MYSQL_PORT=3306 MYSQL_DBNAME=my_bank
Update "MYSQL_USER" and "MYSQL_PASSWORD" values with the correct MySQL user/password. If your password contains dollar sign "$", then remember to escape it eg "123$abc" will need to be changed to "123\$abc"
-
Run the server:
cargo run
-
Using a different terminal send an HTTP GET/POST requests to the running server:
The
apis
directory contains below listed API's files:bank.txt
branch.txt
teller.txt
customer.txt
Copy the curl request on each of the ".txt" and execute them on separate terminals. Each ".txt" contains curl request and expected JSON response data.