オブジェクトを受け取り、そのオブジェクトが特定のパラメータで処理される資格があるかどうかを返すレストサービスを実装したいと思います。問題は、オブジェクトが適格であるかどうかに応じて、の応答の構造が非常に異なるかによって、になります。一例として、オブジェクトが処理されるべきである場合には、処理タイプおよび優先順位に関連付けられる。適格でない場合は、その理由が返されます。同じリクエストに対して異なる構造を返す最もきれいな方法はです。私が考えることができる3つのオプションがありますが、追加オプションを自由に追加することができます。同じリクエストに対して異なる構造を返す最もきれいな方法
オプションA:
{
"eligible": bool,
"data": {
// Data depending on whether elbile or not
}
}
オプションBが構成されているフィールドとを含むエンベロープとして
リターンデータ:したがって
使用異なったHTTPステータスコードと構造JSON。それは本当に要求の誤りではなく有効な応答であるので、何とか汚れています。
オプションC:
適格である場合とそうでない場合のデータ送信には異なるフィールドを使用し、1つのフィールドをnullにします。
{
"eligible": bool,
"dataEligible": {
"processingType": "",
"priority": 0
}
"dataNonEligible": {
"reason": "",
}
}
ありがとうございました。もし私が間違っていれば私は422も正しいと考えました。センドリクエストにセマンティックエラーがあることを意味していませんか? – PKuhn
いいえ、422にはエラーはありませんが、サーバーは何らかの理由でクライアントに知られていないのにそれを処理できません – libik