JSON で応答をフォーマットする正しい方法とその理由は何ですか? さまざまなサービスが2つの方法でそれを行うのを見てきました。単純なGET
/users
リソースを考えてみましょう:
{
"success": true,
"message": "User created successfully",
"data": [
{"id": 1, "name": "John"},
{"id": 2, "name": "George"},
{"id": 3, "name": "Bob"},
{"id": 4, "name": "Jane"}
]
}
それが私が通常そうする方法です。success
とのようないくつかの抽象ヘルパー フィールドmessage
があります。さらにいくつかあるかもしれませんが、問題は、data
フィールド内のデータをリソースと同じ方法で呼び出される配列にネストする必要があるかどうかです - users
:
{
"success": true,
"message": "User created successfully",
"data": {
"users": [
{"id": 1, "name": "John"},
{"id": 2, "name": "George"},
{"id": 3, "name": "Bob"},
{"id": 4, "name": "Jane"}
]
}
}
抽象化を使用しない場合でも:
{
"users": [
{"id": 1, "name": "John"},
{"id": 2, "name": "George"},
{"id": 3, "name": "Bob"},
{"id": 4, "name": "Jane"}
]
}
どのクライアントも、ユーザーが言及されている 、および次のようなクライアントコードでusers
構成される、呼び出したルートを知っているため、キーは廃止されているようです/users
$users = $request->perform('http://this.api/users')->body()->json_decode();
よりもずっと良く見える
$users = $request->perform('http://this.api/users')->body()->json_decode()->users;
繰り返されることを避けるためusers
、