資源管理器模擬服務器

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.