资源管理器模拟服务器

APIGit

2023-04-28

explorer mock server

探索强大的模拟服务器

自动生成模拟服务器脚本

如果您在存储库中创建了自己的规范,那么恭喜!您现在可以自动生成模拟服务器。为此,只需导航到存储库中的“模拟服务器脚本”,然后单击侧边栏顶部的箭头图标。这将显示以下指令集:

Generate Mock Server script automatically action 从 API 规范生成模拟服务器脚本

在上一步中单击箭头图标后,您将看到为您生成了整个路由脚本。

Generate Mock Server script automatically result 根据 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.