doc.dev1x.org

APIのレスポンスは可変項目を避ける

1. 原則

APIのレスポンスは可変項目を避ける

# familyを持つデータ
{
    "user": {
        "name": "USER1",
        ...
    },
    "family": [
        ...
    ]
}
# familyを持たないデータ
{
    "user": {
        "name": "USER2",
        ...
    }
}
# familyを持たないデータ
{
    "user": {
        "name": "USER2",
        ...
    },
    "family": []  # familyを持たないので空配列
}

2. 根拠

クライアントに無駄な実装を強要することになる

data = get_api_data()

if 'family' in data:
    for item in data['family']
        # 何かの処理
        ...
data = get_api_data()

for item in data['family']
    # 項目の中身がNull or 空なら実行されず抜けていく処理
    ...

フォーマットチェックが複雑になる

ドキュメントの記述内容が複雑になる

3. 指針

レスポンスデータは可変項目を避け、Nullか空配列を返すよう設計する

4. 注意

参考資料