Directory specification

Recommended but not mandatory; you can also define your own project structure according to your project's conventions

_examples
├── protos-repo     ## protocol repository
│   ├── Makefile    ## operations entry
│   ├── README.md   ## repository description
│   ├── example     ## service
│   │   └── api     ## API type corresponding to the service, e.g., admin backend protocol: api, public protocol: openapi, merchant protocol: merchantapi
│   │       └── v1  ## protocol version
│   │           ├── example ## files generated by protoc, do not modify
│   │           │   ├── example.pb.go
│   │           │   ├── example_amqp.pb.go
│   │           │   ├── example_grpc.pb.go
│   │           │   ├── example_rest.pb.go
│   │           │   ├── example_rest_gw.pb.go
│   │           │   └── example_validate.pb.go
│   │           └── example.proto   ## protocol description
│   ├── third_party ## third-party protocols or third-party libraries that cannot be managed by the current language package manager; can be managed here via fork or submodule
│   │   └── github.com
│   └── version ## protocol versions
└── svc-example     ## example service
    ├── Dockerfile  ## docker image build configuration
    ├── Makefile    ## operations entry
    ├── apis        ## all implemented APIs are categorized under this directory
    │   ├── api     ## implementation for the corresponding API type
    │   │   ├── conf  ## configuration unique to the current API type
    │   │   │   ├── server.yaml
    │   │   │   └── service.yaml
    │   │   ├── main.go ## program entry for the current API type
    │   │   └── v1  ## API version
    │   │       └── example.go ## business logic
    │   └── openapi
    │       ├── main.go
    │       └── v1
    ├── conf  ## global configuration for the current service
    │   └── example.yaml
    ├── datas ## data persistence
    │   └── example.go
    ├── models ## connection layer between business logic and data persistence, cache construction, multiple persistence layer writes
    │   └── example.go
    ├── services ## shared common business logic
    │   └── example.go
    ├── third_party ## third-party libraries that cannot be managed by the current language package manager; can be managed here via fork or submodule
    └── version ## service version

Last updated