Documentation, Tools, Frameworks/Kitq/Libs for APIs development in go.
- https://threedots.tech/post/microservices-or-monolith-its-detail/
- https://martinfowler.com/bliki/MonolithFirst.html
Almost all the cases where I’ve heard of a system that was built as a microservice system from scratch,
it has ended up in serious trouble.
Almost all the successful microservice stories have started with a monolith that got too big and was broken up.
- https://threedots.tech/post/firebase-cloud-run-authentication/
- casbin : An authorization library that supports access control models like ACL, RBAC, ABAC
How To design APIs.
-
Google API Design Guide : How to write API.
-
Google API Improvement Proposals : Focused design documents for flexible API development.
-
Google linter for APIs : A linter for APIs defined in protocol buffers.
-
Azure API Design : Go Guidelines: API Design.
-
Microsoft API Design : Web API design.
-
Microsoft API Guidelines : API Guidelines.
-
Paypal API Style Guide : API Design Guidelines.
-
API Security Checklist : Checklist of the most important security countermeasures.
-
APIsecurity : API Security Articles, News, Vulnerabilities & Best Practices.
-
API Evangelist : API Evangelist is a site dedicated to the technology, business, and politics of APIs.
Tools To design Architecture.
-
go-diagrams : Go-Diagrams is a loose port of diagrams.
-
aws-icons-for-plantuml : PlantUML sprites, macros, and other includes for Amazon Web Services services and resources.
-
plantuml : PlantUML is a component that allows to quickly write diagrams.
-
The C4 model : The C4 model for visualising software architecture.
-
C4 PlantUML: C4-PlantUML combines the benefits of PlantUML and the C4 model for providing a simple way of describing and communicate software architectures.
-
OpenAPIs : The OpenAPI Specification: a broadly adopted industry standard for describing modern APIs.
-
OpenAPI Spec 3.0.3 : OpenAPI spec V3 replace swagger V2.
- GraphQL : A query language for your API.
-
gRPC : A high-performance, open source universal RPC framework.
-
Protocol Buffers : Protocol Buffers - Google's data interchange format.
-
vscode-proto3 : vscode extension for proto3.
-
grpcui : grpcui is a command-line tool that lets you interact with gRPC servers via a browser.
- httpie : HTTP cli with an intuitive UI.
- Insomnia : Cross-platform HTTP and GraphQL Client.
- Postman : Best Tool to test APIs (REST + GRAPHQL).
- Postwoman : A free, fast and beautiful API request builder.
- OpenAPI Editor : Best Tool to design OpenAPI spec online.
- OpenAPI ReDoc UI : Best Tool to visualize OpenAPI docs.
- OpenAPI CLI : Validate & bundle OpenAPI definitions, with rich diagnostics..
- OpenAPI VSCode : OpenAPI extension for Visual Studio Code.
- PlantUML : Generate UseCase, Sequence Diagram.
-
OpenTelemetry : OpenTelemetry provides a single set of APIs, libraries, agents, and collector services to capture distributed traces and metrics from your application.
-
OpenCensus : OpenCensus is a set of libraries for various languages that allow you to collect application metrics and distributed traces. OpenCensus and OpenTracing have merged to form OpenTelemetry, which serves as the next major version of OpenCensus and OpenTracing.
-
Jaeger : Jaeger: open source, end-to-end distributed tracing.
- ssllabs : SSL Server Test.
- Go Developer Roadmap : How to become a senior Go Developer.
-
OWASP Go Secure Coding Practices : Go programming language secure coding practices guide.
-
golang-tls : Simple Golang HTTPS/TLS Examples + Perfect SSL Labs Score with Go.
- casbin : An authorization library that supports access control models like ACL, RBAC, ABAC
- Beego : Beego is used for rapid development of RESTful APIs, web apps and backend services in Go.
- Buffalo : Rapid Web Development w/ Go.
- Echo : High performance, minimalist Go web framework.
- Go-Kit : A standard library for microservices.
- Go Micro : The Go Micro services development framework.
- Gin : Web Framework / API for Golang.
- Cors : Go net/http configurable handler to handle CORS requests.
- Validator : Go Struct and Field validation.
- oapi-codegen : Generate Go client and server boilerplate from OpenAPI 3 specifications.
- protoc-gen-validate : protoc plugin to generate polyglot message validators.
- go-grpc-middleware : Golang gRPC Middlewares: interceptor chaining, auth, logging, retries and more.
- gosec : Golang security checker.
- Ginkgo : BDD Testing Framework for Go.
- Testify : Testify - Thou Shalt Write Tests.
- Go Leak : Goroutine leak detector to help avoid Goroutine leaks.
-
Docker : Docker Documentation.
-
Docker Compose : Docker Compose Documentation.
-
Container Structure Tests : A powerful framework to validate structure of a container image.
-
testcontainers-go : Testcontainers is a Golang library that providing a friendly API to run Docker container.