6.5.1 • Published 9 months ago

tsoa v6.5.1

Weekly downloads
38,622
License
MIT
Repository
github
Last release
9 months ago

OpenAPI-compliant REST APIs using TypeScript and Node

build status npm version

Goal

  • TypeScript controllers and models as the single source of truth for your API
  • A valid OpenAPI (formerly Swagger) spec (2.0 or 3.0 if you choose 😍) is generated from your controllers and models, including:
    • Paths (e.g. GET /users)
    • Definitions based on TypeScript interfaces (models)
    • Parameters/model properties marked as required or optional based on TypeScript (e.g. myProperty?: string is optional in the OpenAPI spec)
    • jsDoc supported for object descriptions (most other metadata can be inferred from TypeScript types)
  • Routes are generated for middleware of choice
    • Express, Hapi, and Koa currently supported, other middleware can be supported using a simple handlebars template
    • Validate request payloads

Philosophy

  • Rely on TypeScript type annotations to generate API metadata if possible
  • If regular type annotations aren't an appropriate way to express metadata, use decorators
  • Use jsdoc for pure text metadata (e.g. endpoint descriptions)
  • Minimize boilerplate
  • Models are best represented by interfaces (pure data structures), but can also be represented by classes
  • Runtime validation of tsoa should behave as closely as possible to the specifications that the generated OpenAPI 2/3 schema describes. Any differences in validation logic are clarified by logging warnings during the generation of the OpenAPI Specification (OAS) and/or the routes.
    • Please note that by enabling OpenAPI 3 you minimize the chances of divergent validation logic since OpenAPI 3 has a more expressive schema syntax.

Getting Started

Examples

Check out the guides

See example controllers in the tests

See example models in the tests

Help wanted

Contributing code

To contribute (via a PR), please first see the Contributing Guide

Becoming a maintainer

tsoa wants additional maintainers! The library has increased in popularity and has quite a lot of pull requests and issues. Please post in this issue if you're willing to take on the role of a maintainer.

pioneer-rest-tsdua-chatidentity-wswholesale-forwardingfriesensport-ergebnisdienst-shared@infinitebrahmanuniverse/nolb-tso@everything-registry/sub-chunk-2982namaste-besvetch.tsspokenio-apitest-this-modulevalidate-error-tsoa-woowfix@credo-ts/rest@coopenomics/controller@dolittle/vanir-backendcd-monitortsoa-jsdom-workers-exampletsoa-loadertsoa-routing-controllerstsoa-serverlesstsoa-webpack-plugintsoa_sampletime-negartms-customer-portal-apiuserservicewecare@aries-framework/rest@affinidi/affinity-common-backend@algotia/server@bird-wp07/local-module@bithighlander/keepkey-bridgeunif-domain-template@fragcolor/dk@fragcolor/sdk@leafgistics/common@lordoftheflies/paspartu-erp-backend@itsarisid/harmony@mush-ko-li/leapp-core-nightly@ercdex/cli@ercdex/mm@kendallroth/starter-kit-api@interlay/polkabtc-stats@kazize/create-ts-starter-1@noovolari/leapp-core@noovolari/leapp-core-nightly@scaffoldly/serverless-util@ron96/connectorsenomas-micro-libsenomas-micro-sql-libradarsuradarsu-coreidf-kivia-mka-back-for-frontmdjotterleadcast-public-rest-api@xen-orchestra/rest-api@typeshield/http@threefoldjimber/digitaltwin-backend@uniflow-io/uniflow-api@topgroup/diginextbackend-package-typescryptcds.email-subscriptioncontecstcreate-express-typescript-application-samplebcx-eco-system-libarybankless-apibaldbotdgp-xp-appdguardcloudbedxpllm-quoteexample-server-tsoaexpress-mongo-model@shapeshiftoss/bitcoin-api@shapeshiftoss/common-api@shapeshiftoss/ethereum-api@shodement/microservice@squiz/render-runtime-lib@squiz/edge-dev-render-runtime-lib@squiz/management-api@squidcloud/local-backend@squidcloud/backend
6.5.0

9 months ago

6.5.1

9 months ago

6.3.0

1 year ago

6.3.1

1 year ago

6.4.0

12 months ago

6.2.1

1 year ago

6.2.0

1 year ago

6.1.5

1 year ago

6.1.2

1 year ago

6.1.1

1 year ago

6.1.4

1 year ago

6.1.3

1 year ago

6.1.0

1 year ago

6.0.1

1 year ago

6.0.0

2 years ago

6.0.0-rc.5

2 years ago

6.0.0-rc.1

2 years ago

6.0.0-rc.4

2 years ago

6.0.0-rc.3

2 years ago

6.0.0-rc.2

2 years ago

6.0.0-rc.0

2 years ago

5.1.1

2 years ago

5.1.0

2 years ago

5.0.0-alpha.5

3 years ago

5.0.0-alpha.4

3 years ago

5.0.0-rc.0

3 years ago

5.0.0-alpha.3

3 years ago

5.0.0

2 years ago

5.0.0-alpha.2

3 years ago

5.0.0-alpha.1

3 years ago

5.0.0-alpha.0

3 years ago

4.1.3

3 years ago

4.1.2

3 years ago

4.1.0

3 years ago

4.1.1

3 years ago

4.0.0

3 years ago

4.0.0-rc.1

3 years ago

4.0.0-rc.2

3 years ago

4.0.0-alpha.1

4 years ago

4.0.0-alpha.2

4 years ago

4.0.0-rc.0

3 years ago

4.0.0-beta.0

3 years ago

4.0.0-alpha.0

4 years ago

3.14.1

4 years ago

3.14.0

4 years ago

3.12.0

4 years ago

3.13.0

4 years ago

3.11.2

4 years ago

3.11.1

4 years ago

3.11.0

4 years ago

3.10.0

4 years ago

3.9.0

4 years ago

3.8.0

4 years ago

3.7.0

4 years ago

3.6.1

4 years ago

3.6.0

4 years ago

3.5.2

4 years ago

3.5.1

4 years ago

3.5.0

4 years ago

3.4.0

5 years ago

3.3.0

5 years ago

3.3.0-alpha.0

5 years ago

3.2.1

5 years ago

3.2.0

5 years ago

3.1.1

5 years ago

3.1.0

5 years ago

3.0.8

5 years ago

3.0.7

5 years ago

3.0.6

5 years ago

3.0.5

5 years ago

2.5.14

5 years ago

3.0.4

5 years ago

3.0.3

5 years ago

3.0.2

5 years ago

2.5.13

5 years ago

3.0.1

5 years ago

2.5.12

5 years ago

3.0.0

5 years ago

2.5.11

5 years ago

2.5.10

6 years ago

2.5.9

6 years ago

2.5.8

6 years ago

2.5.7

6 years ago

2.5.6

6 years ago

2.5.5

6 years ago

2.5.4

6 years ago

2.5.3

6 years ago

2.5.2

6 years ago

2.5.1

6 years ago

2.5.0

6 years ago

2.4.11

6 years ago

2.4.10

6 years ago

2.4.9

6 years ago

2.4.8

6 years ago

2.4.7

6 years ago

2.4.6

6 years ago

2.4.5

6 years ago

2.4.4

6 years ago

2.4.3

6 years ago

2.4.2

6 years ago

2.4.1

6 years ago

2.4.0

6 years ago

2.3.81

6 years ago

2.3.8

7 years ago

2.3.7

7 years ago

2.3.6

7 years ago

2.3.5

7 years ago

2.3.4

7 years ago

2.3.3

7 years ago

2.3.2

7 years ago

2.3.1

7 years ago

2.3.0

7 years ago

2.2.5

7 years ago

2.2.4

7 years ago

2.2.3

7 years ago

2.2.2

7 years ago

2.2.1

7 years ago

2.2.0

7 years ago

2.1.8

7 years ago

2.1.7

7 years ago

2.1.6

7 years ago

2.1.5

7 years ago

2.1.4

7 years ago

2.1.3

7 years ago

2.1.2

7 years ago

2.1.1

7 years ago

2.1.0

7 years ago

2.0.2

7 years ago

2.0.1

8 years ago

1.3.6

8 years ago

1.3.5

8 years ago

1.3.4

8 years ago

1.3.3

8 years ago

1.3.2

8 years ago

1.3.1

8 years ago

1.3.0

8 years ago

1.2.2

8 years ago

1.1.8

8 years ago

1.1.7

8 years ago

1.1.6

8 years ago

1.1.5

8 years ago

1.1.4

8 years ago

1.1.3

8 years ago

1.1.2

8 years ago

1.1.1

8 years ago

1.1.0

8 years ago

1.0.19

8 years ago

1.0.18

8 years ago

1.0.17

8 years ago

1.0.16

8 years ago

1.0.15

8 years ago

1.0.14

8 years ago

1.0.13

8 years ago

1.0.12

8 years ago

1.0.11

8 years ago

1.0.10

8 years ago

1.0.9

9 years ago

1.0.8

9 years ago

1.0.7

9 years ago

1.0.6

9 years ago

1.0.5

9 years ago

1.0.4

9 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago

0.0.63

9 years ago

0.0.62

9 years ago

0.0.61

9 years ago

0.0.60

9 years ago

0.0.59

9 years ago

0.0.58

9 years ago

0.0.56

9 years ago

0.0.55

9 years ago

0.0.54

9 years ago

0.0.52

9 years ago

0.0.51

9 years ago

0.0.50

9 years ago

0.0.49

9 years ago

0.0.48

9 years ago

0.0.47

9 years ago

0.0.46

9 years ago

0.0.45

9 years ago

0.0.44

9 years ago

0.0.43

9 years ago

0.0.42

9 years ago

0.0.41

9 years ago

0.0.40

9 years ago

0.0.39

9 years ago

0.0.38

9 years ago

0.0.37

9 years ago

0.0.36

9 years ago

0.0.35

9 years ago

0.0.34

9 years ago

0.0.33

9 years ago

0.0.32

9 years ago

0.0.31

9 years ago

0.0.30

9 years ago

0.0.29

9 years ago

0.0.28

9 years ago

0.0.27

9 years ago

0.0.26

9 years ago

0.0.25

9 years ago

0.0.24

9 years ago

0.0.23

9 years ago

0.0.22

9 years ago