3
我想實現一個rest服務,它接收一個對象並在對象有資格使用某些參數進行處理時返回。問題是取決於對象是否合格,響應的結構是非常不同的。作爲對象應該被處理的例子,它與處理類型和優先級相關聯。當它不符合條件時,返回原因。哪一個是最簡單的方法來爲相同的請求返回不同的結構。有三種選擇我可以想到,但隨時可以添加其他選項。爲同一請求返回不同結構的最簡單的方法
選項A:
與字段包含返回數據作爲包絡線,其被構造
{
"eligible": bool,
"data": {
// Data depending on whether elbile or not
}
}
選項B:
使用不同的HTTP狀態代碼和結構相應JSON。這是不清楚的,因爲它不是請求中的錯誤,而是有效的迴應。
選項C:
在符合條件或不符合條件的情況下對數據發送使用不同的字段,並讓一個字段爲空。
{
"eligible": bool,
"dataEligible": {
"processingType": "",
"priority": 0
}
"dataNonEligible": {
"reason": "",
}
}
感謝您的回答。如果我錯了,我認爲422也是正確的。但這並不意味着發送請求有語義錯誤? – PKuhn
不,422沒有任何錯誤,但服務器由於客戶未知的原因仍然無法處理 – libik