tokio_postgres- use of
tokio_pg_mapperfor postgres data mapping deadpool_postgresfor connection poolingdotenv+configfor configuration
-
Create database user
createuser -P test_user
Enter a password of your choice. The following instructions assume you used
testingas password.This step is optional and you can also use an existing database user for that. Just make sure to replace
test_userby the database user of your choice in the following steps and change the.envfile containing the configuration accordingly. -
Create database
createdb -O test_user testing_db
-
Initialize database
psql -f sql/schema.sql testing_db
This step can be repeated and clears the database as it drops and recreates the schema
testingwhich is used within the database. -
Create
.envfile:SERVER_ADDR=127.0.0.1:8080 PG.USER=test_user PG.PASSWORD=testing PG.HOST=127.0.0.1 PG.PORT=5432 PG.DBNAME=testing_db PG.POOL.MAX_SIZE=16
-
Run the server:
cargo run
-
Using a different terminal send an HTTP POST request to the running server:
echo '{"email": "ferris@thecrab.com", "first_name": "ferris", "last_name": "crab", "username": "ferreal"}' | http -f --json --print h POST http://127.0.0.1:8080/users
...or using curl...
curl -d '{"email": "ferris@thecrab.com", "first_name": "ferris", "last_name": "crab", "username": "ferreal"}' -H 'Content-Type: application/json' http://127.0.0.1:8080/users
A unique constraint exists for username, so sending this request twice will return an internal server error (HTTP 500).
