fiber-versioning-boilerplate icon indicating copy to clipboard operation
fiber-versioning-boilerplate copied to clipboard

A boilerplate for fiber versioning, Clean Architecture, API versioning, API documentation, Data versioning

Fiber Versioning Boilerplate

Linter Testing

fiber-versioning-boilerplate

Prerequisite

Make sure you have the following installed outside the current project directory and available in your GOPATH

Features โœจ

  • API Versioning
  • Data Versioning
  • Dynamic Struct Type
  • Clean Architecture
  • Postman Collections
  • API Documentation with swagger

Project structure ๐Ÿ“

api
  โ”œโ”€โ”€ adapters
  โ”‚  โ””โ”€โ”€ mongo.go
  โ”œโ”€โ”€ app.go
  โ”œโ”€โ”€ handlers
  โ”‚  โ”œโ”€โ”€ errors.go
  โ”‚  โ”œโ”€โ”€ parser_body.go
  โ”‚  โ””โ”€โ”€ response.go
  โ”œโ”€โ”€ utilities
  โ”‚  โ”œโ”€โ”€ configuration.go
  โ”‚  โ””โ”€โ”€ converter.go
  โ””โ”€โ”€ versions
    โ”œโ”€โ”€ v1
    โ”‚  โ”œโ”€โ”€ entities
    โ”‚  โ”œโ”€โ”€ factories
    โ”‚  โ”œโ”€โ”€ repositories
    โ”‚  โ”œโ”€โ”€ routes
    โ”‚  โ””โ”€โ”€ usecases
    โ””โ”€โ”€ v2
        โ”œโ”€โ”€ entities
        โ”œโ”€โ”€ factories
        โ”œโ”€โ”€ repositories
        โ”œโ”€โ”€ routes
        โ””โ”€โ”€ usecases

Development environment setup

make setup

Start the application โšก๏ธ

make start

Testing ๐Ÿงช

make test

Manual ๐Ÿ—’๏ธ

Run make help to list available commands:

Choose a command run in fiber-versioning-boilerplate:

  setup           Initialize project
  docker-start    Start docker-compose
  docker-stop     Stop docker-compose
  start           Start the application
  copy-env        Copy environment file
  gendoc          Generate docs api with swagger
  test            Run tests coverage
  mongo-dump      Dump MongoDB data for testing
  mongo-restore   Restore MongoDB data for testing