gaip

module
v0.0.0-rc.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 10, 2023 License: Apache-2.0

README

golang AIP server demo

License

Practices for implementing Google API Improvement Proposals (AIP) in Go.

Share knowledge and help others.

❯ make help

Usage:
  make <target>

Build
  build                                     Build binary for current OS and place it at ./bin/gaip
  build-all                                 Build binaries for Linux, Windows and Mac and place them in dist/
  clean                                     Remove artefacts or generated files from previous build

Dependencies
  go-mod                                    go mod download && go mod tidy
  check-go-mod                              Ensures fresh go.mod and go.sum.
  buf-mod                                   Run buf mod update after adding a dependency to your buf.yaml
  install-build-deps                        Install dependencies tools

Generate the schema under internal/ent/schema/ directory
  ent-new                                   Get a description of graph schema
  ent-gen                                   Regenerate schema
  ent-describe                              Get a description of graph schema
  atlas-lint                                Verifying and linting migrations
  atlas-diff                                Generating Versioned Migration Files
  atlas-apply                               Apply generated migration files onto the database

Regenerate gRPC code
  buf-gen                                   Regenerate proto by buf https://buf.build/
  swagger-ui                                Generate Swagger UI
  protoc-gen                                Regenerate proto by protoc

Testing Lint & fmt
  test                                      Run tests.
  lint                                      Runs various static analysis against our code.
  fmt                                       Runs fmt code (automatically fix lint errors)
  go-fmt                                    Runs gofmt code
  buf-fmt                                   examining all of the proto files.
  goreleaser-lint                           Lint .goreleaser*.yml files.
  go-lint                                   examining all of the Go files.
  buf-lint                                  Lint all of the proto files.
  api-linter                                Lint all of the proto files.
  fix-lint                                  fix lint issue of the Go files

Release
  prepare-release-candidate                 Create release candidate
  prepare-release                           Create release
  print-version                             Prints the upcoming release number
  manifests                                 Generates the k8s manifests

General
  help                                      Display this help. Thanks to https://www.thapaliya.com/en/writings/well-documented-makefiles/

Automatic Migration planning script

docker run --rm --name atlas-db-dev -d -p 3306:3306 -e MYSQL_DATABASE=dev -e MYSQL_ROOT_PASSWORD=pass mysql:8

Directories

Path Synopsis
cmd
client-grpc/data
Package data provides convenience routines to access files in the data directory.
Package data provides convenience routines to access files in the data directory.
genproto
bookstore/apiv1alpha1
NOTE: This package is in alpha.
NOTE: This package is in alpha.
library/apiv1
NOTE: This package is in alpha.
NOTE: This package is in alpha.
project/apiv1
NOTE: This package is in alpha.
NOTE: This package is in alpha.
todo/apiv1
NOTE: This package is in alpha.
NOTE: This package is in alpha.
todo/apiv1/todopb
Package todopb is a reverse proxy.
Package todopb is a reverse proxy.
internal
ent
pagination
Package pagination provides primitives for implementing AIP pagination.
Package pagination provides primitives for implementing AIP pagination.
pkg
app
service/library/name
Package name deals with parsing and formatting resource names used in the Library API
Package name deals with parsing and formatting resource names used in the Library API
service/project/name
Package name deals with parsing and formatting resource names used in the Library API
Package name deals with parsing and formatting resource names used in the Library API
tools
log

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL