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、