Pokedex REST API allows users to keep track of caught pokemon and their stats: TYPE
, HP
, ATTACK
, and DEFENSE
. The API utilizes JWT authentification for additional security as well as a number of other tools (look below). The projects structure implements clean architecture
and dependecy injection
principles
- /v1/pokemon
=>
POST=>
Add pokemon - /v1/pokemon
=>
GET=>
Get all pokemon - /v1/pokemon/{id}
=>
GET=>
Get pokemon by id - /v1/pokemon/{id}
=>
PUT=>
Update pokemon by id - /v1/pokemon/{id}
=>
DELETE=>
Delete pokemon by id
- /health
=>
GET=>
Ping the database connection - /auth/sign-up
=>
POST=>
Create new pokemon trainer - /auth/sign-in
=>
POST=>
Sign in with existing profile to generate JWT authentification token
App configuration
=> ViperLogging
=> LogrusRouting
=> ChiDatabase
=> Postgres + pgxDatabase migrations
=> GooseContainerization
=> Docker + Docker ComposeAuthentification and middleware
=> JWT GoTesting
=> Sqlmock + Gomock + Testify
make initUp
# rebuild containers
make build
# start the app
make run
# run psql utility
make startPsql