Restful API that develops with Go Fiber Framework for CRUD Todo List with Repository pattern that supports caching and Elasticsearch. This project also implements the pipeline to make it easier for search improvement.
- Go version: 1.20.1
- Restful CRUD Todo List
- Middleware
- Validator
- Seeder
- Pipline
- Database (MySQL/PostgreSQL)
- Caching (Redis/Memcache)
- [WIP] Elasticsearch
- Pipline
- Dockerize
- Swagger
- Copy
/.env.example
to/.env
and set with your own credentials - RUN
go get -d -v
to download the packages - RUN
make build
to build executable file OR - RUN
make run
to build and run the app - Open http://localhost:3000
- Open http://localhost:3000/api/v1/documentation for swagger
- Copy
/.env.example
to/.env
and set with your own credentials - Copy
/docker/.env.example
to/docker/.env
and set with your own credentials - On
/.env
set:APP_HOST=app-todo
DATABASE_HOST=mysql-todo
andDATABASE_PORT=3306
forDATABASE_DRIVER=mysql
DATABASE_HOST=postgres-todo
andDATABASE_PORT=5432
forDATABASE_DRIVER=postgres
REDIS_HOST=redis-todo
forCACHE_DRIVER=redis
MEMCACHE_HOST=memcache-todo
forCACHE_DRIVER=memcache
ELASTICSEARCH_HOST="http://es01-todo"
- Run
docker compose up -d --build
- Open http://localhost:3000
- Open http://localhost:3000/api/v1/documentation for swagger
- Use
swag init
command to generate swagger for documentation. more details
- Go Fiber Web Framework
- Inspired by Goshaka Starter
- Fixing Elasticsearch integration
- Implement ACL (Access Control List) and manage users
- Add unit test
- Support GraphQL