Шах*_*Шах 5 json-server angular
为了测试客户端的ApiService类,我需要用模拟替换我的真实后端 URL,出于这些目的,我选择了json-server。我设置了一个代理配置来转发所有以http://localhost:4200/v1/apito开头的请求http://localhost:3000:
{
"/api/v1": {
"target": "http://localhost:3000",
"secure": false
}
}
Run Code Online (Sandbox Code Playgroud)
当我发送类似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"
}
}
Run Code Online (Sandbox Code Playgroud)
并为json-server设置paths.json:
{
"/auth/token": "/auth_token"
}
Run Code Online (Sandbox Code Playgroud)
但它仍然无法通过json-server使用paths.json工作:
[0] Other routes
[0] /auth/token -> /auth_token
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
由于我的错误和json-server的魔力, 我的解决方案不起作用:
我发现json-server/api/v1会自动替换/。但如果您使用上面的路由设置,则/api/v1/auth/token不会/api/v1/auth_token自动替换,并且您将收到404错误。
因此json-server行为给我造成了一种错觉,认为Angular中的代理设置会替换http://localhost:4200/api/v1为http://localhost:3000. 因此,在我的例子中,正确的路由如下所示:
{
"/api/v1/auth/token": "/api/v1/auth_token"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4508 次 |
| 最近记录: |