在上一篇文章中,我們?cè)O(shè)計(jì)了響應(yīng)的數(shù)據(jù)結(jié)構(gòu)。本文繼續(xù)介紹如何設(shè)計(jì)參數(shù)的數(shù)據(jù)結(jié)構(gòu)。
在添加、更新一個(gè)自行車資源時(shí),需要將自行車的信息作為參數(shù)傳遞給 API 的操作。那么,這個(gè)參數(shù)需要包含哪些信息呢?
我們先回顧一下自行車的屬性信息,再根據(jù)具體的操作進(jìn)行分析。
自行車的屬性:
- 編號(hào):reference
- 名稱:name
- 價(jià)格:price
- 重量:weight
- 上架日期:dateAdded
- 描述:description
添加自行車
在添加一個(gè)新的自行車資源時(shí),自行車的編號(hào)屬性,是由后端服務(wù)根據(jù)業(yè)務(wù)規(guī)則生成的,不需要管理員提供。再來看看上架日期。上架日期應(yīng)該等同于管理員添加自行車時(shí)的日期和時(shí)間,也不需要管理員手動(dòng)添加,由后端服務(wù)自動(dòng)添加即可。因此,在添加自行車資源時(shí),需要下列屬性作為參數(shù)信息:
- 名稱:name
- 價(jià)格:price
- 重量:weight
- 描述:description
更新自行車
在更新一個(gè)自行車資源時(shí),自行車的編號(hào)是需要提供的,API 服務(wù)使用他來匹配要更新的自行車。自行車的編號(hào)是全局唯一的,自行車與其編號(hào)一一對(duì)應(yīng),不會(huì)重復(fù)。因此,自行車的編號(hào)可以作為路徑參數(shù)。當(dāng)然,上架日期也不需要在更新操作中進(jìn)行修改。如果有必要,可以增加更新日期屬性,記錄最近一次更新時(shí)間。因此,在更新自行車資源時(shí),需要下列屬性作為參數(shù)信息:
- 編號(hào):reference
- 名稱:name
- 價(jià)格:price
- 重量:weight
- 描述:description
小結(jié)
參數(shù)數(shù)據(jù)的設(shè)計(jì)與響應(yīng)數(shù)據(jù)的設(shè)計(jì)相似,在不同的場(chǎng)景中,使用不同的信息表示業(yè)務(wù)實(shí)體資源。需要注意的是,參數(shù)只提供必需的數(shù)據(jù),特別是不要提供由后端服務(wù)產(chǎn)生的數(shù)據(jù)。下面三個(gè)問題依然對(duì)參數(shù)數(shù)據(jù)的設(shè)計(jì)有幫助:
- 所有屬性都與客戶業(yè)務(wù)相關(guān)嗎?
- 所有屬性都是客戶需要的嗎?
- 客戶理解所有屬性的含義嗎?