APIGit
2023-04-28
リポジトリ内に独自の仕様を作成した場合は、おめでとうございます!モック サーバーを自動的に生成できるようになりました。これを行うには、リポジトリ内の「Mock Server Scripts」に移動し、サイドバーの上部にある矢印アイコンをクリックするだけです。これにより、次の一連の指示が表示されます。
API 仕様からモック サーバー スクリプトを生成する
前の手順で矢印アイコンをクリックすると、ルート スクリプト全体が生成されていることがわかります。
API 仕様に基づくモック サーバー スクリプト
強力な自動モック サーバー ツールのおかげで、API 仕様に関連するいくつかのスクリプトを受け取ることができます。ただし、モック サーバーのデプロイに必要なコードは数行だけであることに注意してください。
//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 プラットフォームに Dynamic Mock Server をデプロイするのは簡単なプロセスです。配列リストを定義し、その中で追加、更新、または検索することにより、以前に送信した要求に基づいて応答を受け取ることができます。
//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.
作成したモック サーバーを使用するには、最初にスクリプトを公開する必要があります。スクリプトが公開されると、「Mock Servers」セクション内でサーバー アドレスを見つけることができます。 にアクセスして、モック サーバー スクリプトを探索し続けることができます。Automatic generation of Ready-to-Use Mockservers またMock Server API Definition.
© 2024 APIGit Inc.