.. | ||
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:
Directory "mysql\sql" 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:
Directory "mysql/apis" contains below listed API's files:
addbank.txt
addbranch.txt
addteller.txt
addcustomer.txt
getbank.txt
getbranch.txt
getteller.txt
getcustomer.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.