我在前端测试时使用假api。
我已经看到在json-server包中放置或发布你的数据需要id,我的问题是我可以使用不同的密钥而不是id for ex。
{
id: 1, ---> i want to change this with my custom id
name: 'Test'
}
答案 0 :(得分:4)
让我们看看 json-server 包的CLI选项:
$ json-server -h
...
--id, -i Set database id property (e.g. _id) [default: "id"]
...
让我们尝试使用名为“ customId ”的新ID启动json-server(例如):
json-server --id customId testDb.json
testDb.json 文件的结构:$ cat testDb.json
{
"messages": [
{
"customId": 1,
"description": "somedescription",
"body": "sometext"
}
]
}
通过$.ajax
函数(或通过Fiddler / Postman /等)发出简单的POST请求。请求的Content-type
应设置为application/json
- 可以在此项目的github页面上找到解释:
POST,PUT或PATCH请求应包含Content-Type:application / json标头,以在请求正文中使用JSON。否则,它将导致200 OK,但不会对数据进行任何更改。
所以...从浏览器发出请求:
$.ajax({
type: "POST",
url: 'http://127.0.0.1:3000/messages/',
data: {body: 'body', description: 'description'},
success: resp => console.log(resp),
dataType: 'json'
});
转到testDb
并查看结果。添加了新的块。 id自动添加了在控制台cmd的--id key
中指定的所需名称。
{
"body": "body",
"description": "description",
"customId": 12
}
瞧!
答案 1 :(得分:1)
在需要自定义ID的情况下,我想出了使用自定义路由的方法: json服务器--watch db.json --routes route.json
routes.json:
{ "/customIDroute/:cusomID" : "/customIDroute?cusomID=:cusomID" }