How Do You Enforce API Standards Across Multiple Go Services?

As a Go project grows, keeping API conventions consistent across services can become surprisingly difficult.

One service might use one error format, another might handle pagination differently, and a third might expose slightly different naming conventions.

I’m wondering how other Go teams handle this kind of API governance.

For example, do you automatically check things like:

  • OpenAPI validity
  • Endpoint naming conventions
  • HTTP status code usage
  • Authentication requirements
  • Required documentation
  • Breaking API changes
  • Consistent error responses
  • Deprecated endpoints

I’m especially interested in automated checks that can run as part of CI rather than relying entirely on code review.

For a team with several Go services, I’m imagining something like:

OpenAPI → governance checks → tests → review → deployment

Do you use an existing API governance tool, OpenAPI linters, custom Go tooling, or GitHub Actions to enforce these rules?

What checks have actually been useful in your experience, and which ones created too much friction?