首页 > 解决方案 > 使用 tsoa 定义具有多个端点的 Controller

问题描述

在迁移用 typescript 编写的节点服务以生成 OpenAPI 规范时,我遇到了一个处理大量端点的控制器类。URL 模式可以表示为

/{item}/{stateChange}

但是,有一组特定的允许stateChange事件,似乎它们应该被定义为 OAS 中的端点。有没有一种好方法可以将tsoa与允许的端点的数组/散列一起使用?

当前代码使用类似的类型

type StateMapping = {[key: string]: DatabaseState}

代码基本上说

targetState = stateMapping[stateChange];
if (!targetState) {
  request.setStatus(400);
} else {
  if (dbEntry(item).addState(targetState)) {
    request.setStatus(200);
  } else {
    request.setStatus(409);
  }
}

为每个可能的 stateChange 创建一个控制器方法似乎没有意义,但最好在 OAS 文档中显示它们中的每一个。您能否建议一种方法来为 tsoa 提供 stateMapping 条目列表以将其视为端点?

标签: node.jsopenapitsoa

解决方案


推荐阅读