現在の位置: ホーム> 最新記事一覧> シミュレーションAPI要求の前後のパラメーターの比較

シミュレーションAPI要求の前後のパラメーターの比較

M66 2025-05-17

APIを開発する場合、要求されたパラメーターを予想されるパラメーターと比較して、変更が変更されたかどうかを確認する必要がある場合があります。 PHPによって提供されるarray_diff_assoc関数は、これを達成するのに役立ちます。この関数は、2つの配列のキー価値ペアを比較するために使用され、それらの間に異なる部分を返します。次に、この関数を使用して、APIリクエストの前後にパラメーターの比較をシミュレートする方法を紹介します。

1。array_diff_assoc関数の基本的な使用

まず、 array_diff_assoc関数の基本的な使用法を理解する必要があります。この関数は、2つの配列を比較するために使用され、最初の配列には存在するが2番目の配列には存在するキー価値ペアを含む配列を返します。

関数プロトタイプ:

 array_diff_assoc(array $array1, array $array2): array
  • $ array1 :最初の配列(比較する配列)。

  • $ array2 :2番目の配列(最初の配列と比較される配列)。

この関数は、配列のキー名とキー値を比較し、最初の配列にキー価値のペアを返しますが、値が異なる2番目の配列の一部はありません。

2。シミュレーションAPIリクエストの前後のパラメーターの比較

APIリクエストの前後にパラメーターの比較をシミュレートすると、通常、 array_diff_assocを使用して、リクエストパラメーターと予想されるパラメーターの違いを見つけることができます。例えば:

シーン:

ユーザーがパラメーターを送信するAPIリクエストがあります。提出されたパラメーターを予想されるパラメーターと比較して、ユーザーが追加のパラメーターを提出するか、いくつかのパラメーターの値を変更するかを確認します。

サンプルコード:

 <?php
// シミュレーションリクエスト前のパラメーター
$expectedParams = [
    'user_id' => 123,
    'name' => 'John Doe',
    'email' => 'john.doe@m66.net',
    'phone' => '123-456-7890'
];

// ユーザーがサビされたパラメーターをシミュレートします
$submittedParams = [
    'user_id' => 123,
    'name' => 'John Doe',
    'email' => 'john.doe@m66.net',
    'phone' => '987-654-3210',  // 異なる携帯電話番号
    'address' => '123 Main St'  // 追加のパラメーターが提出されました
];

// 使用 array_diff_assoc 2つの配列の比較
$diff = array_diff_assoc($submittedParams, $expectedParams);

// 出力比較結果
if (!empty($diff)) {
    echo "要求されたパラメーターと予想されるパラメーターの違いは次のとおりです:\n";
    print_r($diff);
} else {
    echo "要求されたパラメーターは、予想されるパラメーターと一致しています。\n";
}
?>

コード説明:

  1. $ expectsParams :これは、ユーザー_ID名前電子メール電話の4つのフィールドを含む、予想されるリクエストパラメーターです。

  2. $ submittedParams :これは、ユーザーが送信したリクエストパラメーターです。通常の4つのフィールドに加えて、追加のアドレスフィールドが送信され、電話フィールドが変更されます。

  3. array_diff_assocを使用して、提出されたParamsspeductparamsを比較し、それらの違いを確認します。

  4. 違いがある場合は、 print_rを使用して差分パーツを出力します。違いがない場合は、一貫したメッセージを出力します。

出力:

 要求されたパラメーターと予想されるパラメーターの違いは次のとおりです:
Array
(
    [phone] => 987-654-3210
    [address] => 123 Main St
)

上記のように、出力はユーザー要求の違いを示しています。電話パラメーターは変更されており、アドレスは不要なパラメーターです。

3。高度な使用法

2つの配列の違いを比較するだけでなく、より複雑なチェックが必要な場合もあります。たとえば、特定のパラメーターが欠落しているかどうか、または特定のキーフィールドが特定の形式を満たしているかどうかを確認する必要がある場合があります。機能を強化するために、他のPHP関数と組み合わせて機能することができます。

例:パラメーターチェックがありません

<?php
$missingParams = array_diff_key($expectedParams, $submittedParams);
if (!empty($missingParams)) {
    echo "次のパラメーターがありません:\n";
    print_r($missingParams);
} else {
    echo "予想されるすべてのパラメーターが提出されています。\n";
}
?>

この例では、 array_diff_keyを使用してキー名を比較して、リクエストにどの予想されるパラメーターが欠落しているかを調べます。