Generando Rutas y OEA
Referencia pertinente de API: Config, generateRoutes, generateSpec, generateSpecAndRoutes, ExtendedRoutesConfig, y ExtendedSpecConfig.
Uso CLI
Comandos básicos
# generate OAS
tsoa spec
# generate routes
tsoa routes
# discover config files beneath the current directory
tsoa discover
# discover config files beneath a path or glob
tsoa discover "packages/*"Opciones
OpenAPI Generación de especificación (OEA)
Usage: tsoa spec [options]
Options:
--configuration, -c tsoa configuration file; default is tsoa.json in the working directory [string]
--discover discover tsoa config files using a path or glob before running the command [string]
--host API host [string]
--basePath Base API path [string]Generación de rutas
Usage: tsoa routes [options]
Options:
--configuration, -c tsoa configuration file; default is tsoa.json in the working directory [string]
--discover discover tsoa config files using a path or glob before running the command [string]
--basePath Base API path [string]Descubrimiento de Config
Usage: tsoa discover [pathOrGlob]discoverbúsquedas por debajo de la ruta proporcionada, o bajo el directorio de trabajo actual cuando no se proporciona ningún argumento.- Las entradas de brillo son compatibles, así que comandos como
tsoa discover "packages/*"otsoa spec --discover "services/*"expandirá las raíces coincidentes primero. - Discovery reconoce estos nombres de archivo de configuración convencionales:
tsoa.json-tsoa.yaml-tsoa.yml-tsoa.config.js-tsoa.config.cjs-spec,routes, yspec-and-routespuede admirar todos los configs descubiertos:
tsoa spec --discover "packages/*"
tsoa routes --discover "./services"
tsoa spec-and-routes --discover .Usted puede encontrar la referencia para la tsoa configuración archivo here
Para información sobre el objeto de configuración (tsoa.json), también puede estar interesado en:
Programmatic
Importar API de generación programática de tsoa-next/cli. La raíz tsoa-next el punto de entrada es sólo de tiempo de ejecución y debe ser utilizado para los decoradores y ayudantes de tiempo de ejecución.
import { generateRoutes, generateSpec, generateSpecAndRoutes, ExtendedRoutesConfig, ExtendedSpecConfig } from 'tsoa-next/cli'
;(async () => {
const specOptions: ExtendedSpecConfig = {
basePath: '/api',
entryFile: './api/server.ts',
specVersion: 3,
outputDirectory: './api/dist',
controllerPathGlobs: ['./routeControllers/**/*Controller.ts'],
}
const routeOptions: ExtendedRoutesConfig = {
basePath: '/api',
entryFile: './api/server.ts',
routesDir: './api',
}
await generateSpec(specOptions)
await generateRoutes(routeOptions)
// Or generate both outputs from one shared metadata pass:
await generateSpecAndRoutes({
configuration: {
entryFile: './api/server.ts',
controllerPathGlobs: ['./routeControllers/**/*Controller.ts'],
spec: {
outputDirectory: './api/dist',
specVersion: 3.1,
},
routes: {
routesDir: './api',
},
},
})
})()Nota: Si usas tsoa programáticamente, por favor tenga en cuenta que tsoa's métodos pueden (bajo circunstancias raras) cambiar en versiones menores y de parche. Pero si estás usando tsoa en un archivo .ts, entonces TypeScript te ayudará a migrar a cualquier cambio. Nos reservamos este derecho a cambiar lo que son esencialmente nuestros métodos internos para que podamos seguir proporcionando valor incremental al usuario mayoritario (nuestro CLI usuarios). El CLI sin embargo sólo recibirá cambios de ruptura durante una liberación mayor.
