在設(shè)計一個資源分享應(yīng)用。設(shè)計RESTful API時,在設(shè)計層面有些蒙圈了。特地求教各位。物聯(lián)網(wǎng)設(shè)備通過設(shè)備云服務(wù)抽象成一個設(shè)備API。而我目前設(shè)計的Web APP則是通過與應(yīng)用業(yè)務(wù)的整合,將設(shè)備API封裝后,再次封發(fā)給第三方APP(比如其他合作平臺)和移動APP。DeviceAPI --> WebAPI -?-> Cloud|APK|APP我現(xiàn)在有兩種選擇:第一種來自Flask/Flask-RESTful的API設(shè)計,采用JSON格式。先采用API Key/Secret登陸,換取token,然后在后續(xù)訪問中采用token來訪問,也可以利用API Key/Secret繼續(xù)訪問。這是最常見的經(jīng)典方式。典型的URL風(fēng)格是:http://host/api/version/resource/idx/第二種來自Flask-appbuilder自帶的資源驅(qū)動的REST API,采用JSON格式。但是其鑒權(quán)方式采用經(jīng)典的username/password。換而言之,移動APP事實上是作為瀏覽器的替代物而存在的。唯一區(qū)別在于返回值采用JSON替代了XHTML。典型URL風(fēng)格是:http://host/resource/api/idx有些怪異,是吧?但URI字段順序并不是最重要的,我發(fā)現(xiàn)移動APP和第三方APP的需求是有差異的。作為用戶,使用移動APP列出自己名下的設(shè)備列表,并通過設(shè)備ID來訪問特定設(shè)備的狀態(tài)讀取和指令下發(fā)。所以這種方式更加適合第二種方式。作為合作方網(wǎng)站,需要訪問的范圍可能更加廣,雖然不能夠指令下發(fā),但是讀取特定設(shè)備的狀態(tài)也涉及到隱私權(quán)。這個似乎更加適合第一種方式。必須依賴設(shè)備ID訪問特定設(shè)備,不同的用戶,不同的第三方平臺都需要單獨的設(shè)備密鑰。這兩種方式是否可以整合?這個問題比較寬泛,歡迎指教和討論。
2 回答

SMILET
TA貢獻(xiàn)1796條經(jīng)驗 獲得超4個贊
我對你具體業(yè)務(wù)這一塊不是很了解啊。不過看你上面的問題,url是怎么樣的并不是那么重要,restful其實除了json,還有xml,form,url query等多種方式,flask-restful都是支持的。剩下主要問題就是鑒權(quán)方式,原理都差不多,無非是傳輸或存放的地方不一樣,可以是:session,cookie,url params,http header等等。
- 2 回答
- 0 關(guān)注
- 860 瀏覽
添加回答
舉報
0/150
提交
取消