gpt4 book ai didi

javascript - Mockjax 可以处理来自 Json 文件的单个 ID Api

转载 作者:行者123 更新时间:2023-11-30 00:03:23 28 4
gpt4 key购买 nike

我第一次使用 Mockjax 来模拟​​一个 Restful API,它将返回一系列给定 id 的数据。现在我有一个包含多个项目的 json 文件,我想在 Mockjax 中(或在必要时)有一个函数来只返回查询的 ID。我怎样才能做到这一点?

当前代码:

$.mockjax({
url: "/Api/Cases/{caseId}",
proxy: "/mocks/cases nuevo.json",
dataType: 'json',
responseTime: [500, 800]
});

$.ajax({
type: 'GET',
url: '/Api/Cases/',
data: {caseId: taskId},
success: function(data){
//use the returned
console.log(data);
}
});

当前错误:

GET http://localhost:8080/Api/Cases/?caseId=100 404 (Not Found)

最佳答案

好问题...是的,你可以做到这一点。但是您必须使用 response callback function 自己编写功能然后对文件发出“真正的”Ajax 请求(而不是使用 proxy 选项)。下面我只是进行了另一个 $.ajax() 调用,因为我没有为 that 端点设置模拟处理程序,Mockjax 让它通过。

请注意,设置 URL 参数与您建议的略有不同,这是模拟设置的样子:

$.mockjax({
url: /\/Api\/Cases\/(\d+)/, // notice the regex here to allow for any ID
urlParams: ['caseID'], // This defines the first matching group as "caseID"
responseTime: [500, 800],
response: function(settings, mockDone) {
// hold onto the mock response object
var respObj = this;
// get the mock data file
$.ajax({
url: 'mocks/test-data.json',
success: function(data) {
respObj.status = 200;
// We can now use "caseID" off of the mock settings.urlParams object
respObj.responseText = data[settings.urlParams.caseID];
mockDone();
},
error: function() {
respObj.status = 500;
respObj.responseText = 'Error retrieving mock data';
mockDone();
}
});
}
});

然而,您的代码还有一个问题,您的 Ajax 调用没有将 ID 添加到 URL,而是将它添加到查询字符串。如果您想使用该 API 端点,您还需要更改源代码 $.ajax() 调用。这是新的 Ajax 调用:

$.ajax({
type: 'GET',
url: '/Api/Cases/' + taskId, // this will add the ID to the URL
// data: {caseId: taskId}, // this adds the data to the query string
success: function(data){
//use the returned
console.log(data);
}
});

请注意,这假设模拟数据类似于:

{
"13": { "name": "Jordan", "level": 21, "id": 13 },
"27": { "name": "Random Guy", "level": 20, "id": 27 }
}

关于javascript - Mockjax 可以处理来自 Json 文件的单个 ID Api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39422634/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com