總結(jié)一下ruby中如何寫設(shè)計(jì)api接口:
1.api是程序之間的接口廊镜,一個(gè)服務(wù)端api接口包含http方法鞠鲜,URL户辫,請(qǐng)求查詢參數(shù)麻裁,以及響應(yīng)回傳的數(shù)據(jù)資料箍镜。
2.設(shè)計(jì)API的流程(前提就是model數(shù)據(jù)表已經(jīng)建立好了,數(shù)據(jù)什么都有了)
2a.首現(xiàn)搞清楚前端要求的數(shù)據(jù)結(jié)構(gòu)煎源,根據(jù)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)jbuilder的樣式色迂,需要老去那些數(shù)據(jù)。(雷同于rails的view模版手销,只是這份數(shù)據(jù)是沒有html和css樣式的)
2b.下一步是設(shè)計(jì)http和url歇僧,與前面的數(shù)據(jù)相互映射
2c.最后一步就是寫http 請(qǐng)求對(duì)應(yīng)的controller對(duì)應(yīng)的action的業(yè)務(wù)邏輯,通過ryby自帶的api從數(shù)據(jù)哭里面撈取資料锋拖。
下面舉個(gè)例子:
設(shè)計(jì)一個(gè)獲取所有歌手列表的api:
第一步:分析數(shù)據(jù)結(jié)構(gòu)诈悍,其實(shí)就是一個(gè)含有所有的歌手實(shí)例對(duì)象的數(shù)組,所以jbuilder的模版樣式就是:(Array!是jbuilder這只gem里面的方法)
第二步:設(shè)計(jì)路由兽埃,這里設(shè)計(jì)的路由和我們之前設(shè)計(jì)的路由稍微復(fù)雜一點(diǎn)侥钳,應(yīng)該是之前我們寫的resources路由是ruby幫我們已經(jīng)寫好的,這里就要我們自己寫了柄错,verb+URL+"Controller#Action"+As(http請(qǐng)求的別名方法)舷夺。
第三步:寫controller,和最開始的crud一樣從后端數(shù)據(jù)庫中直接撈取數(shù)據(jù)售貌。注意和jbuilder的變量一直给猾。
第四步:根據(jù)之前設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu),開始寫jbuilder的代碼