enterprise-architectures-and-patterns

HTTP CRUD Sample

This is a sample implementation of CRUD (Create, Read, Update, Delete) in Rust

The sample is using MySQL for persistence and provides the following API endpoints via HTTP:

Send data to POST /items and PUT /items/:id using the following structure:

{
    "name": "item name",
    // boolean (either true or false)
    "active": true
}

Supported Platforms

To run the sample on your local machine, you must have the following software installed:

Running the Sample

Local (spin up)

To run this sample locally, you can either follow the steps mentioned below or use the corresponding targets specified in the Makefile.

# 1. Start a MySQL container 
## alternatively you can run `make database-up`
docker run -d -e MYSQL_USER=spin \
  -e MYSQL_PASSWORD=spin \
  -e MYSQL_ROOT_PASSWORD=secure-pw \
  -e MYSQL_DATABASE=spin \
  -p 3306:3306 --name mysql \
  mysql:latest

# 2. Build and Run the database seeding container
## alternatively, you can run `make database-seed`
docker build . -t mysql-seed
# snip
docker run --rm -e MYSQL_PWD=spin --link mysql mysql-seed

# 3. Build the Spin App 
## alternatively, you can run `make build`
spin build

# 4. Run the Spin App
## alternatively, you can run `make run`
spin up

At this point, you can invoke the API endpoints mentioned above at http://localhost:3000/