Redcap 是國外的一個第三方數(shù)據(jù)庫结澄,最近在做一個項目接觸到,官網(wǎng)上沒有object-c的開發(fā)文檔憔恳,在github上也沒有相應(yīng)的demo吩翻,只有在YouTube上有一個十分模糊且有一定年代的視頻,沒方法只好睜開我的鈦合金狗眼來跟著寫骨坑,為了以防以后要用到和本著知識共享的理念就寫下來記錄一下吧撼嗓。
在這里只展示如何用oc進(jìn)行數(shù)據(jù)的交互。我們打開REDCap API Documentation欢唾,可以看到里面有系列的使用教程且警,這里我們只需要用到Records這一系列教程。
那么我們從最簡單的Export Records 也就是下載數(shù)據(jù)開始礁遣。
根據(jù)文檔的提示斑芜,我們前期要準(zhǔn)備的Parameters(參數(shù))
有“url”,“token”亡脸,“content”押搪,“format”,“type”浅碾,在type下面有四個提示,根據(jù)提示我們可以知道续语,還要傳record ID垂谢, redcap_event_name(你的表名) 這些參數(shù)。
Redcap 還提供了一個API playground疮茄,我們可以在上面測試API通不通滥朱,我們上去看看還少什么參數(shù)。果然力试,在上面php代碼上還有一堆的參數(shù)徙邻,根據(jù)多年的bug之路,讓我感覺還是寫上去好畸裳,具體如圖2缰犁。
好萬事俱備,只差afnetworking。帅容。颇象。等等,如果這時候你用AFNetworking進(jìn)行數(shù)據(jù)交互的話并徘,會報400的錯誤遣钳,至于為什么,可能是afnetworking的cookie之類的麦乞,這里我們不深究(還不是深究我也不懂蕴茴。。求大神賜教=阒薄>氲怼),好简肴,那么我們就用NSURLConnection自己寫請求晃听,直接貼代碼,如圖3
這樣數(shù)據(jù)就可以請求下來了砰识。
那么接下來我們就看一下如何上傳數(shù)據(jù)能扒,還是回到我們?nèi)f能的REDCap API Documentation,找Import Records辫狼,看看圖4初斑,很好,這很英文膨处,密密麻麻的好像很多參數(shù)见秤,不怕,我們可以剝離一下真椿。
比下載數(shù)據(jù)鹃答,這里多了overwriteBehavior和data這兩個參數(shù),耐心的想想突硝,恩沒錯测摔,overwriteBehavior顧名思義是寫數(shù)據(jù)的行為,那么data就是我們的重頭戲解恰,我們要從這里傳數(shù)據(jù)锋八,講是這么講但是坑就在這里,如果你直接一個字典包上去那么他就一個error給你护盈。挟纱。
好,我們冷靜一下看看API playground是怎么給寫法腐宋,我們可以看到export records的時候返回的數(shù)據(jù)是數(shù)組包字典的紊服,那么動用我們敏捷的程序員思維逆向想一下檀轨,上傳數(shù)據(jù)也應(yīng)該這樣,我們?nèi)PI playground里試試围苫,bingo~~裤园,好,排坑排完后就直接帖代碼剂府。
好了拧揽,按照這個方法就可以進(jìn)行數(shù)據(jù)交互了,方法比較簡單腺占,希望能幫到大家淤袜。