# lukeautry/tsoa

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/lukeautry-tsoa).**

3,968 stars · 534 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/lukeautry/tsoa
- awesome-repositories: https://awesome-repositories.com/repository/lukeautry-tsoa.md

## Topics

`hacktoberfest` `hacktoberfest2021`

## Description

tsoa is a TypeScript API framework that synchronizes server routing, request validation, and API documentation through the static analysis of typed controllers. It functions as a Node server route generator and an OpenAPI REST API generator, converting TypeScript models and controllers into routing configurations and API specifications.

The project differentiates itself by using static type analysis to extract metadata from source code without executing it. This metadata is used to synthesize OpenAPI specifications and generate JSON schemas for structural validation of request payloads.

The framework covers automated route management, mapping network requests to server controllers via template-based route generation. It also provides a middleware layer for REST request validation to verify that incoming HTTP payloads match defined schemas at the network boundary.

## Tags

### Web Development

- [TypeScript](https://awesome-repositories.com/f/web-development/typescript.md) — Provides a framework for building Node server routes and controllers using static types to reduce boilerplate.
- [Controller-Based Route Generators](https://awesome-repositories.com/f/web-development/controller-based-route-generators.md) — Automates the creation of server routing configurations based on typed controller metadata.
- [Request Schema Validators](https://awesome-repositories.com/f/web-development/request-schema-validators.md) — Enforces data validation at the network boundary by verifying incoming HTTP requests against typed schemas. ([source](https://github.com/lukeautry/tsoa#readme))
- [OpenAPI Specification Generators](https://awesome-repositories.com/f/web-development/restful-apis/documentation-schemas/openapi-specification-generators.md) — Automatically derives OpenAPI specifications from TypeScript code definitions to generate interactive API documentation. ([source](https://github.com/lukeautry/tsoa#readme))
- [Type-Safe API Frameworks](https://awesome-repositories.com/f/web-development/type-safe-api-frameworks.md) — Leverages static type analysis to synchronize server routing, request validation, and API documentation.
- [Request Validation Middleware](https://awesome-repositories.com/f/web-development/request-validation-middleware.md) — Provides middleware that intercepts incoming HTTP requests to verify payload integrity against generated schemas.

### Development Tools & Productivity

- [API Route Generators](https://awesome-repositories.com/f/development-tools-productivity/template-based-code-generators/api-route-generators.md) — Generates server routing code from extracted controller metadata using predefined templates. ([source](https://github.com/lukeautry/tsoa#readme))

### Programming Languages & Runtimes

- [Type-to-Schema Generators](https://awesome-repositories.com/f/programming-languages-runtimes/json-schema-converters/json-schema-generators/type-to-schema-generators.md) — Converts TypeScript type definitions into standard JSON schema documents for structural validation of request payloads.

### Software Engineering & Architecture

- [Metadata-Driven Endpoint Mapping](https://awesome-repositories.com/f/software-engineering-architecture/controller-to-specification-mappings/metadata-driven-endpoint-mapping.md) — Links network endpoints to specific class methods by analyzing decorators and type signatures during the build process.
- [Controller-Based Route Automation](https://awesome-repositories.com/f/software-engineering-architecture/routing-configurations/automated-routing-rules/controller-based-route-automation.md) — Automates the creation of server routing setups from typed definitions to eliminate manual boilerplate code. ([source](https://github.com/lukeautry/tsoa#readme))
- [Metadata-Driven Route Management](https://awesome-repositories.com/f/software-engineering-architecture/routing-configurations/automated-routing-rules/metadata-driven-route-management.md) — Maps network requests to server controllers using automatically generated routing configurations based on source code metadata.

### Testing & Quality Assurance

- [TypeScript Static Analysis](https://awesome-repositories.com/f/testing-quality-assurance/code-quality-review/code-quality-tools/formatting-and-linting-pipelines/javascript-and-typescript-toolchains/typescript-linting-plugins/typescript-static-analysis.md) — Extracts metadata from TypeScript source code to derive API paths and data models without executing the code.
