少数のクライアント (iOS および Android アプリ) にデータを配信するための JSON API を開発しています。
現在、常に発生している疑問は、JSON をどのような観点から構造化するのかということです。
1) 「クライアント中心」:
JSON キーは、アプリ内の一致する UI 要素にちなんで命名されます。例えば:
{
"label" : "This is a headline of a news article",
"textField" : "This is the text of a news article",
}
プロ:
アプリのコンテンツは、アプリの新しいバージョンをリリースすることなく変更できます。UI ラベルの内容を変更する場合は、次のようになります。
{
"label" : "This is a short abstract of a news article"
}
また、クライアント側の 1 つのビューに関連するデータ モデルを 1 つだけ持つことができる必要があります。
反対:
データ オブジェクト名から UI 要素名への変換が必要なため、サーバー側で混乱が生じる
2) 「データ中心」
JSON キーは、データを配信するデータ エンティティにちなんで命名されます
{
"articleHeadline" : "This is a headline of a news article",
"articleText" : "This is the text of a news article"
}
プロ:
JSON API は、それが何をするかを示します。キー名は、キーの内容を明らかにします。
反対:
データ オブジェクト名から UI 要素名への変換が必要なため、クライアント側で混乱が生じる
内容を変更すると、JSON キーの名前も変更されます。
{
"articleAbstract" : "This is a short abstract of a news article"
}
これには、API を使用するすべてのアプリのコード変更とデプロイも必要です。