module
0.0.0-20240329054035-5d6a96f373b6
Repository: https://github.com/gitkodev/pokemon-api.git
Documentation: pkg.go.dev
# README
Go Pokedex REST API
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
Endpoints
API
- /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
Other
- /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
Tools used
App configuration
=> ViperLogging
=> LogrusRouting
=> ChiDatabase
=> Postgres + pgxDatabase migrations
=> GooseContainerization
=> Docker + Docker ComposeAuthentification and middleware
=> JWT GoTesting
=> Sqlmock + Gomock + Testify
Installation
make initUp
Running the app
# rebuild containers
make build
# start the app
make run
# run psql utility
make startPsql