从Typescript项目生成OpenApi规范

时间:2019-11-26 09:03:41

标签: typescript aws-lambda swagger openapi

我们正在使用纯ApiGatewayProxyEvent而不是任何express或其他中间件在aws-lambda上运行我们的打字稿服务。服务中的每个路由在AWS Lambda中都有其自己的函数定义。

我们希望采用一种代码优先的方法来创建我们的OpenApi规范,类似于SpringFox对Spring所做的操作,但不对框架使用任何运行时依赖项。

在当前的PoC中,我们使用typescript-resttypescript-rest-swagger来注释控制器,然后调用swaggerGen -c ./swaggerConfig.json -p ./tsconfig.json。这为我们提供了正确的OpenApi规范。 但是,当我们在环境中运行实际功能时,会出现以下异常:

Module not found: Error: Can't resolve 'typescript-ioc' in '/(...)/node_modules/typescript-rest/dist/server'
 @ ./node_modules/typescript-rest/dist/server/server.js 105:18-72
 @ ./node_modules/typescript-rest/dist/typescript-rest.js
 @ ./src/controllers/myController.ts
 @ ./src/handlers/myHandler.ts
 @ ./src/lambda.ts

ERROR in ./node_modules/typescript-rest/dist/server/server.js
Module not found: Error: Can't resolve 'typescript-ioc/es6' in '(...)/node_modules/typescript-rest/dist/server'
 @ ./node_modules/typescript-rest/dist/server/server.js 105:18-72
 @ ./node_modules/typescript-rest/dist/typescript-rest.js
 @ ./src/controllers/myController.ts
 @ ./src/handlers/myHandler.ts
 @ ./src/lambda.ts

我们的假设是,这是因为typescript-restexpress插件,因此需要服务在express上运行。 有没有运行时相关性的规范创建方法吗? 如果没有,是否还有其他工具允许代码优先方法?

0 个答案:

没有答案