首页 > 解决方案 > json-server 中用于嵌套端点的自定义路由

问题描述

为了测试客户端的ApiService类,我需要用一个模拟替换我的真实后端 URL,为此我选择了json-serverhttp://localhost:4200/v1/api我设置了一个代理配置来转发所有以to开头的请求http://localhost:3000

{
    "/api/v1": {
        "target": "http://localhost:3000",
        "secure": false
    }
}

当我发送请求时它可以工作,http://localhost:4200/api/v1/users 不适用于嵌套端点(例如http://localhost:4200/api/v1/auth/token)。我发现json-server不支持对嵌套对象的请求,所以我改变了我的data.json如下:

{
    "auth_token": {
        "access_token":"accesstoken1",
        "token_type":"Bearer"
    }
}

并为json-server设置routes.json

{
    "/auth/token": "/auth_token"
}

但它仍然无法通过json-server使用routes.json

[0]   Other routes
[0]   /auth/token -> /auth_token

我究竟做错了什么?

标签: angularjson-server

解决方案


由于我的错误和json-server的魔力 ,我的解决方案不起作用:

我发现json-server会自动替换/api/v1/。但是如果你使用上面的路由设置,那么/api/v1/auth/token不会被/api/v1/auth_token自动替换,你会得到404错误。

所以json-server的行为让我产生了一种错觉,即Angular中的代理设置替换http://localhost:4200/api/v1http://localhost:3000. 因此,在我的情况下,正确的路由如下所示:

{
    "/api/v1/auth/token": "/api/v1/auth_token"
} 

推荐阅读