{"repo":"swaggest/rest","free":true,"listed":false,"github":"https://github.com/swaggest/rest","clone":"git clone https://github.com/swaggest/rest.git","description":"Web services with OpenAPI and JSON Schema done quick in Go","language":"Go","stars":487,"topics":["openapi","openapi3","rest-api","json-schema","golang","go","swagger","hacktoberfest"],"license":"MIT","category":"api-integrations-sdks","readme_excerpt":"REST with Clean Architecture for Go This module implements HTTP transport level for github.com/swaggest/usecase to build REST services. Goals Maintain single source of truth for documentation, validation and input/output of HTTP API. Avoid dependency on compile time code generation. Improve productivity and reliability by abstracting HTTP details with simple API for common case. Allow low-level customizations for advanced cases. Maintain reasonable performance with low GC impact. Non-Goals Support for legacy documentation schemas like Swagger 2.0 or RAML. Zero allocations. Explicit support for XML in request or response bodies. Features Compatible with net/http . Built with github.com/go-chi/chi router. Modular flexible structure. HTTP request mapping into Go value based on field tags. Decoupled business logic with Clean Architecture use cases. Automatic type-safe OpenAPI 3.0/3.1 documentation with github.com/swaggest/openapi-go . Single source of truth for the documentation and endpoint interface. Automatic request/response JSON schema validation with github.com/santhosh-tekuri/jsonschema . Dynamic gzip compression and fast pass through mode. Optimized performance. Embedded Swagger UI. Generic interface for use case interactors. Usage Please check this tutorial for end-to-end usage example. Request Decoder Go struct with field tags defines input port. Request decoder populates field values from http.Request data before use case interactor is invoked. Input data can be locate","default_branch":null,"files":null,"tree":[],"storefront":"/r/swaggest","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/swaggest/rest/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}