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