JSON-Server未按ID

时间:2017-11-16 15:47:22

标签: json rest json-server

我试图让Json-Server(v 0.12.1)在不需要中间件或将其用作组件的情况下工作 - 如果我打算花点时间,我已经有了一些正常的工作手动编码所有端点。我被简单的路由配置所吸引,我相信我应该能够使用它而不需要routes.jsondb.json(让我删除很多样板文件)。

我的db.json:

  "users": [
    {
      "userId": 1,
      "favoriteColor": "red"
    },
    {
      "userId": 2,
      "favoriteColor": "blue"
    },
    {
      "userId": 3,
      "favoriteColor": "green"
    }
  ]

我的routes.json:

{
    "/api/users": "/users",
    "/api/users/:userId": "/users/:userId"
}

我希望能够拨打GET:http://localhost:3000/api/users/2并获取

{
  "userId": 2,
  "favoriteColor": "blue"
}

作为回报。但是,我总是得到{}

尝试使用来自SO的一些建议,无论是更改数据结构(我无法控制)还是使用过滤器(返回数组,而不是对象)都不适合我。

有谁知道为什么这条看似简单的路线不起作用?我相信我正在关注custom route guidelines。我正在使用json-server --watch ./api/db.json --routes ./api/routes.json启动服务器,并且点击http://localhost:3000/api/users会完全返回我的预期,因此我知道routes.json文件和db.json文件都已成功获取。

谢谢!

1 个答案:

答案 0 :(得分:1)

我必须使用以下命令启动服务器: json-server --watch db.json --routes routes.json

db.json

{
  "users": [
    {
      "id": 1,
      "first_name": "Sebastian",
      "last_name": "Eschweiler",
      "email": "sebastian@codingthesmartway.com"
    },
    {
      "id": 2,
      "first_name": "Steve",
      "last_name": "Palmer",
      "email": "steve@codingthesmartway.com"
    },
    {
      "id": 3,
      "first_name": "Ann",
      "last_name": "Smith",
      "email": "ann@codingthesmartway.com"
    }
  ]
}

routes.json

{
    "/api/users": "/users",
    "/api/users/:id": "/users/:id"
}