【发布时间】:2019-08-09 21:30:15
【问题描述】:
我正在 node.js 和 Typescript 中构建一个 REST API,我正在使用 tsoa 和大摇大摆的文档。构建成功,swagger.json 生成成功但没有找到端点。
src/app.ts
import * as express from "express"
import * as bodyparser from "body-parser"
import { RegisterRoutes } from "./routes/routes"
import * as swaggerUi from "swagger-ui-express"
import * as methodOverride from "method-override"
/** import all your routes here */
import "./routes/user"
/** End of Routes */
const app = express()
try {
const swaggerDocument = require("../swagger.json")
app.use("/docs", swaggerUi.serve, swaggerUi.setup(swaggerDocument))
} catch (err) {
console.error("Unable to read swagger.json", err)
}
app.use(bodyparser.json())
app.use(methodOverride())
RegisterRoutes(app)
export { app }
src/routes/user.ts
import {Get,Post,Route,Body,Query,Header,Path,SuccessResponse,Controller as Router } from "tsoa"
import { User, UserCreationRequest } from "../components/user"
import { UserController } from "../controllers/user"
@Route("users")
export class UsersRouter extends Router {
@Get("/{id}")
public async getUser(@Path("id") id: number): Promise<User> {
return new UserController().getUser(id)
}
@SuccessResponse("201", "Created") // Custom success response
@Post()
public async createUser(
@Body() requestBody: UserCreationRequest
): Promise<void> {
this.setStatus(201) // set return status 201
return Promise.resolve()
}
}
当我打开 /docs 时,它返回带有预期端点的 swagger UI,但是当我尝试使用像 /users/{id} 这样的 api 时,它返回 404,我无法理解为什么,不胜感激。
提前致谢
【问题讨论】:
标签: node.js typescript swagger decorator