智能摘要 AI
该文章介绍了如何在NestJS中设置全局路由前缀,以实现接口版本隔离。具体做法是通过`NestFactory.create`创建应用实例,并调用`setGlobalPrefix`方法为API设置统一路径前缀(如`/api`)。此配置确保所有API请求需携带该前缀。然而,这种方法仅适用于统一路径隔离,并不适合用于实现不同版本API的隔离。官方建议使用专门的版本化技术来管理API的不同版本,详细信息可参考官方文档。
前言
这个是非常常见的一种配置,我们的接口通过域名访问,但是这个域名不一定全部都给后端使用,所以一般后端服务都是基于域名,通过一个前缀路由来实现区分,比如:
www.xxx.com
# 后端服务1
www.xxx.com/v1
# 后端服务2
www.xxx.com/v2通过一个统一的路径名来区分。
教程
在nestjs中,这个配置放在了文档比较末端的地方,代码如下:
import { NestFactory } from "@nestjs/core";
import { AppModule } from "./app.module";
async function bootstrap() {
const app = await NestFactory.create(AppModule);
// 全局路由前缀
app.setGlobalPrefix("api");
await app.listen(3000);
}
bootstrap();此时我们访问就必须加上/api的路径前缀了。
http://localhost:3000/api官方文档: global-prefix
拓展:接口版本区分?
你可能会认为这个方法可以用于实现接口的版本区分,但是它并不能做到,文档中所提供的排除选项,只能精准匹配,他是无法匹配某一个路径从而排除这个路径下的所有路由的。
事实上Nestjs官方本身就已经考虑到这种情况,它们提供了更强大的配置处理,这里就需要自己去查看官方文档:
英文版:versioning
中文版:API 多版本





评论 (0)