私はマイクロサービス環境で新しいサービスを開発しています。これはRESTサービスです。簡単にするために、パスが/ historyBooksであるとしましょう
そして、このパスのPOSTメソッドは、新しい履歴ブックを作成します。
歴史書が歴史の1つ以上の時代をカバーしていると仮定しましょう。
簡潔にするために、人間の歴史の次の時代しかないと仮定しましょう。
- 古代
- ポストクラシック
- モダン
私のコードでは、それらをで表現したいと思いenum
ます。
メソッドの本体(ペイロード)はJSON形式であり、フィールド名を含める必要がありますeras
。このフィールドは、era
この本で扱う値のリストです。
本体は次のようになります。
{
"name": "From the cave to Einstein - a brief history review",
"author": "Foo Bar",
"eras": ["Ancient", "Post Classical", "Modern"]
}
この特定のサービスでは、ビジネスロジックは次のとおりです。
入力に時代が指定されていない場合、この本はすべての時代を網羅していると見なされます。
APIレビューでは、すべての時代が網羅されていることを明示的に示すために、時代の列挙に
別の値を含めることを提案しましたALL
。
長所と短所があると思います。
長所:
明示的な入力
短所:
リスト内の2つの項目が提供されている場合、と言うALL
とAncient
-アプリケーションから取得されますでしょうか?これでALL
他の値が上書きされるはずですが、それは新しいビジネスロジックです。
特定の時代を対象とする書籍のクエリを実行する場合、すべての時代を対象とする書籍をどのように表現しますか?場合ALL
も(同じロジックを使用して)出力に使用され、それが解釈する消費者の責任だALL
とは["Ancient", "Post Classical", "Modern"]
。
私の質問
新しいALL
ものを持つことは、まったく持たないことよりも混乱を引き起こすと思います。
どう思いますか?このALL
値を追加しますか、それなしでAPIを保持しますか?