APIGit
2023-04-28
如果您在存储库中创建了自己的规范,那么恭喜!您现在可以自动生成模拟服务器。为此,只需导航到存储库中的“模拟服务器脚本”,然后单击侧边栏顶部的箭头图标。这将显示以下指令集:
从 API 规范生成模拟服务器脚本
在上一步中单击箭头图标后,您将看到为您生成了整个路由脚本。
根据 API 规范模拟服务器脚本
感谢强大的自动 Mock Server 工具,您将收到几个与 API 规范相关的脚本。但是,需要注意的是,部署 Mock Server 只需要几行代码。
//this script should be in main.js
mock.define("/", "GET", function (req, res) {
res.send(200, "welcome to apigit mock server");
});
在“main.js”文件中,您会发现各种与 API 规范相关的路由函数。为了进一步测试,您可以在此文件中自由定义其他函数。
借助 Dynamic MockServer,开发人员可以为不同的端点创建多个场景,每个场景都有不同的响应数据、标头和状态代码。这允许开发人员在各种场景和条件下测试他们的应用程序,确保它们在不同情况下按预期工作。
在 Apigit 平台上部署动态模拟服务器是一个简单的过程。通过定义数组列表并在其中添加、更新或搜索,您可以根据之前发送的请求接收响应。
//all routes should be defined in main.js)
// global state
state.users = state.users || []
// create a user
mock.define("/user", "POST", function (req, res) {
var user = req.body;
if (user.username === "") {
res.send(405, "Invalid input");
return;
}
user.id = uniqueId(); // generate uniqueID for the new user
state.users.push(user);
res.send(200, user);
});
// find user by name
mock.define("/user/{username}", "GET", function (req, res) {
var user = null;
for (var i = 0; i < state.users.length; i++) {
if (state.users[i].username == req.params.username) {
user = state.users[i];
break;
}
}
if (user === null) {
res.send(404, "User not found");
return;
}
res.send(200, user);
});
为确保您的脚本保持井井有条且易于理解,建议您在“main.js”文件中定义所有路由。但是,如果您希望让您的代码更加模块化,您可以通过单击“+”图标并将回调函数添加到新文件来创建一个新的路由文件。文件结构将如下所示:
//main.js
var pet = require("./routes/pet.js")
// define the routes callback in seperated files
// pet
mock.define("/pet", "PUT", pet.updatePet); // update an existing pet
并在另一个文件中定义回调函数。
//./routes/pet.js
// global state
state.pets = state.pets || []
exports.updatePet = function (req, res) {
var pets = state.pets || [];
var pet = req.body;
var i = 0;
for (i = 0; i < pets.length; i++) {
if (pets[i].id == pet.id) {
pets[i] = pet;
state.pets = pets;
break;
}
}
if (i === pets.length) { // menas not found the pet
res.send(404, 'Pet not found');
return;
}
res.send(200, pet);
};
有关完整示例,您可以访问Github.
要使用您创建的模拟服务器,您必须首先发布脚本。脚本发布后,您可以在“模拟服务器”部分找到服务器地址。 您可以通过访问继续探索模拟服务器脚本Automatic generation of Ready-to-Use Mockservers 或者Mock Server API Definition.