skyrocketOoO / web-server-template

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

web-server-template

The basic server template

Directory structure

  • api: API definition
    • grpc: Store the generated grpc object
    • rest: Route binding with controller function
  • benchmark: Benchmark and api test with k6
  • docs: Documentation
    • grpc: Document generated from proto-gen-doc
    • rest: Document generated from go-swagger
  • internal: Go function to not export the main logic
    • boot: The initial process
    • cmd: Command to run start and multiple functions
    • global:
      • domain: General domain like errorcode...etc
    • controller: The first layer received from api, used for parse request and response, validation...etc
    • usecase: Primary business logic
    • repository: Orm, Redis, Dao...
    • i18n
  • manifest: Config...
    • config
    • deploy
    • docker
    • protobuf
  • scripts:
  • utils: Utility functions

Function

  • Protocol
    • Grpc
    • Rest

Package

  • Router: Gin
  • Unit test: Testify
  • Config: Viper
  • ORM: Gorm
  • Logging: Zerolog
  • Cmd: Cobra
  • Error trace: Eris
  • Rest api doc: swaggo/swag
  • Grpc doc: pseudomuto/protoc-gen-doc

Tool

Multi-repo vs Mono-repo

https://goframe.org/pages/viewpage.action?pageId=87246750

About

License:MIT License


Languages

Language:Go 82.2%Language:Shell 6.1%Language:JavaScript 4.8%Language:Makefile 4.3%Language:Dockerfile 2.5%