restful api php設計


  作為一個新手程序員,剛上班不久就被BOSS,拖去開發restful api 與APP交互。拿到手一臉蒙圈,然后看了某度的別人所設計的,感覺就是重復很多,設計很多。然后翻牆出去看了好久,終於把這個K完了。然后寫下這個博文,讓自己總結一下和記錄。

  首先我們要做的是PHP db封裝,這個要包含最基本的CRUD。可以把常量就是配置數據庫的寫在頭部,或是寫在另外一個頁面,導入這個cofin。

  然后我要介紹restful api 的設計有很多種,

  我們使用這種方法:

  get:select  POST:inseit into  put:update  delete:delete

  每一個method對應不同的方法,這樣方便而且容易區分。

  例如一個用戶表:

  GET:/app/    列出所有用戶

  GET: /app/1   列出ID為1的用戶

  POST:/app/    增加用戶

  PUT:/app/id    修改指定ID為1的用戶(put有個特性,他只會修改一次,不管你怎么刷新頁面)

  delete:/app/id   刪除指定ID

 

  [這里要使用一個工具 chorm的postman,這個工具可以模擬從APP發送不同的method方法,發送的格式因為都是JSON,也可以在上面修改,這個是別的軟件,不會操作自己百度一下,對了,下載下來如果發現裝不上去,可以把里面那個文件的后綴名,改成.rar.然后在解壓到當前的文件夾,把_metadata前面的_去掉,然后在用谷歌就可以使用了]

 

  而我不使用put和delect ,不是嫌麻煩,是那兩個沒怎么用過,有點抗拒。我是這么寫的

  都用POST或是分開get和Post,只要傳入的json中有”第一個“[way]=add或select,把方法傳進來,用swtich這個方法判斷。

    1.POST方法接收不到頭部不是header(”content-type:application/json“),為什么要設置這個頭部,別問我,我也不知道。這樣我不能用$_post[‘’]這個方法接收了,$_get['']可以使用,我們可以用這個,json_decode(file_get_contents("php://input"),true);自己查一下手冊,就明白這是什么了。

    2.我們怎么知道對方提交的是什么的method,可以用這個。$_SERVER['REQUEST_METHOD']

    3.為什么要刪除way。呵呵你傳進來的這個解析后的數組,你不要里面的參數了嗎?難道 你的數據庫里也有[way]='add';這個方法,那就當我沒說,我們可以用這個函數unset();把這個[way]這個K掉

  

  當我們執行了一遍這個DB流程回來,我們要發送json數據回去和HTTP code回去。

  查詢是要返回的,其他的返回一個標示就差不多了 。

  發送回去的json:

  {code:200,data:''}自己把要返回的數據拼進去,不返回數據的{code:200,msg:...};這個都可以自定義返回的,當然要寫成一個文檔

  

  發送回去的httpd code:

  網上要非常多介紹code的狀態碼,我想說城里的人真會玩,我不懂這個是狀態碼嗎?我只是想怎么發回去罷了,看到最后都沒發現。我也是服了。

  http_response_code(200);

  不懂有沒有同學也會跟我一樣,說這個函數沒定義,這個時候你要自己定義一個函數了

  

  不發個圖感覺都不算是博客。

  

  添加方法里面,我不是什么都聽別人丟什么,我們就要什么的。

  我們要把自己的字段表封裝,就是把這個想要的 $data['oid'] = 給對方的字段,json解封下來所對應的字段,我們把自己想要的取下來,然后才放進去。這個是有必要的,當然我們也要問對面想要什么,我也發特定的回給他。

  到這里restful api設計完畢了。沒有什么設計方面的知識。有什么的大神大家一起交流,畢竟‘新手上路’;

                                                                                      ----j.m

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM