一個校驗介面引發的思考--我真的瞭解Response嗎

雙面神像發表於2021-11-14

一個校驗介面

最近,我需要對接一個外部介面,基本功能是:校驗指定的門店是否完善了貨運資訊。介面大致是這樣的:

POST https://******/Dealer/CheckCarrier
Heads:Authorization=****,Content-Type=application/x-www-form-urlencoded
Request Body:DealerCode=**,StoreCode=**,BrandCode=**,BuCode=**
Response Body:
{"success":true,"message":"操作成功","data":"OK"}

這種 Response 的結構相信大家並不陌生吧。

第一個問題

拿到這個介面時,我覺得有點奇怪。既然是校驗介面,結果應該是 true 或 false 啊,怎麼給了個字串“OK”呢?於是,帶著疑問,我找到了提供介面的同行 A。

interface_design_004

同行 A 回覆說,不用管 data,校驗的結果放在 success 裡?這時,我頭上多了更多的問號,感覺哪裡怪怪的,又一時說不出個所以然。

第二個問題

思考片刻,我才意識到這種疑惑的根源--同行 A 對 Response 的理解和我不一樣。在我看來,不管什麼介面,data 放的都是最終結果,而 success 放的是是否正常地完成了呼叫。就拿這個介面來說,指定的門店不管有沒有完善貨運資訊,success 都應該為 true,那什麼時候為 false 呢?當某些原因導致校驗無法正常得到結果時,返回 false,例如,入參非法、門店未維護。

難道一直以來我都是錯的嗎?

我試著和同行 A 交流這個問題,發了一堆廢話後,同行 A 好像沒有理解我的疑惑。

interface_design_002

可能是我沒表達清楚吧,我試著用比喻的方式來說明:我想看看樓上有沒有肉?data 裡放的就是最終結果,即有沒有肉,而 success 為 true 時,說明我順利地爬上了漏,並確認了有沒有肉,為 false 時,可能是我爬樓梯摔了一跤,沒法確認有沒有肉

interface_design_003

最後,同行 A 好像認可了我的這套邏輯,當然,人家可能是覺得我太煩了,不想與我多費口舌。

結語

所以,我想知道,大家是怎麼理解 Response 的。

最後,感謝閱讀,歡迎私信交流。

本文為原創文章,轉載請附上原文出處連結:https://www.cnblogs.com/ZhangZiSheng001/p/15552479.html

相關文章