在前端开发中,我们常常需要使用到后端提供的 API 接口来获取数据。而在开发 API 时,使用 Swagger 等文档工具来生成 API 文档可以帮助开发者更快速地理解和使用接口。本文将介绍一个 npm 包 @benjd90/routing-controllers-openapi,它可以帮助我们将使用 routing-controllers 框架编写的接口自动生成 Swagger 文档。
安装
在项目根目录下运行以下命令来安装该 npm 包:
npm install @benjd90/routing-controllers-openapi
可以选择将该包添加到项目的 dependencies 中,也可以使用 -D 将其添加到 devDependencies 中。
使用
在使用前,我们需要先安装并配置好 routing-controllers 框架。在此基础上,我们可以通过以下方式使用 @benjd90/routing-controllers-openapi:
-- -------------------- ---- ------- ------ - ----------------- ------------------------- - ---- ---------------------- ------ - ------------------------ - ---- --------------------------------------- ------ - -- ------- ---- ---------- ----- --- - ---------- ----- -------------------------- ------------------------- - - ------------ ---------- - -------------------------- -- ----- ----------- - ---------------------------------------------------- ------------------------ ----- ---- -- - ----------------------------- -------------------- ---------------------- ---
以上代码先定义了 routing-controllers 的配置,然后通过 routingControllersToSpec 方法将其转化为 Swagger 规范,最后在 /swagger.json 路径下输出该规范。
示例代码
为了更好地理解该 npm 包的使用方法,我们可以参考以下示例代码:
-- -------------------- ---- ------- ------ - --------------- ---- ----------- --------- - ---- ---------------------- ------ - --------------- - ---- --------------------------------------- ----------------- ------ ----- -------------- - ----- - - - --- -- ----- ----- -- - --- -- ----- ------ -- - --- -- ----- ------ -- -- ------------------ ------------ ---- - ---- -- ------- ---------- - ------ - ------------ ---------- -------- - ------------------- -- -- -- -- -- -------------- ------------------------------- ----- ------- ------------------- ----- ------- - ------ ---------------------- ------ - -
以上代码定义了一个 UserController,以 GET 方式获取所有用户信息。其中,我们使用了 @benjd90/routing-controllers-openapi 中的 ApiOperationGet 装饰器来标记该接口的 Swagger 文档信息。
总结
使用 @benjd90/routing-controllers-openapi 可以帮助我们更加方便、快捷地生成 routing-controllers 框架的 API 文档,并且可以通过 Swagger UI 界面查看和测试接口。该 npm 包的使用方式简单,但是具有较高的实用性和指导意义。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60067356890c4f7277583c41