摘要:在實際開發中格式的數據被廣泛用于客戶端和服務端數據的交互,幾乎每種語言都支持數據的解析,在中使用和便可,非常便捷。
php作為服務端的開發語言在app開發中扮演著連接客戶端和數據庫的角色,客戶端通過調用由php開發的接口完成對數據庫的操作,php代碼中實現用戶業務邏輯的部分。客戶端需要傳遞一些參數給服務端php,這些參數的格式由客戶端開發人員和服務端開發人員共同協商制定,兩者遵循同一套標準,使得雙方之間傳遞的數據能夠被正確解析。在實際開發中json格式的數據被廣泛用于客戶端和服務端數據的交互,幾乎每種語言都支持json數據的解析,在php中使用json_encode()和json_decode()便可,非常便捷。
在php為app開發接口中需要注意以下幾點:
1、數據傳輸建議使用json,json具有很強的跨平臺性,大多編程語言都支持json解析,json正在逐步取代xml,成為網絡數據的通用格式。
2、為了保證接口安全,一定要加入鑒權體系,確保請求php接口的是合法來源。另外對于傳輸的數據也可以使用加密技術,本書第20章有講述關于api接口簽名和信息加密的內容。
3、對于線上的API,盡量使用error_reporting(0)關閉錯誤提示,或者把錯誤提示寫入到日志中,方便日后排查。這樣做的目的,一方面可以保護接口安全,防止輸出不該打印的錯誤信息,另一方面是保證輸出的是正確的數據格式,防止輸出錯誤信息被客戶端錯誤解析而出現的接口調用異常。
4、開發 API 和 WEB 有一定的區別,如果接口返回的格式不規范,被客戶端拿到解析,可能會導致客戶端閃退崩潰等情況的出現,所以在接口上線之前一定要充分的測試。
5、盡可能保證php寫出的代碼的性能,手機應用比web應用對響應速度的要求更高,因為用戶手機性能的巨大差異,手機應用在從服務端取到數據后要進行數據重組頁面渲染等會比web應用消耗更多的時間。
客戶端和服務端之間選定json作為數據傳輸格式,之后便要約定json中各字段的含義,一般在json數據中定義至少三個字段,分別為返回狀態碼,返回狀態描述和數據內容。比如一個定義返回用戶信息的的json數據如下:
{“code":0,"msg":"success","data":{"name":"chenxiaolong","age":"22","gender":"male"}}
其中code值為0表示客戶端此次請求接口成功,msg字段說明此次請求的狀態,與返回狀態碼code對應,data中是客戶端想要取到的具體內容,里面包含服務端返回的用戶信息。在data字段開發者可根據不同的接口需要定義不同的字段格式。
此接口的簡單代碼示例如下:
function getUserInfo() { $uid = $_REQUEST[‘uid"]; $user = new User(); if($data = $user->findByUid($uid) != false) { $this->output($data); } else { $this->output("",1,"invalid uid"); } }
客戶端通過調用getUserInfo接口并傳入用戶的uid參數,php接收該參數到mysql數據庫用戶表里根據此uid查詢用戶相關信息,其中User是一個封裝的用戶表模型,它提供根據用戶uid查詢用戶信息的findByUid方法,如果查詢到用戶信息就輸出用戶信息,否則返回錯誤信息給到客戶端,此處返回的錯誤狀態碼定義為1,表示不合法的uid,即在用戶表里沒有查詢到該uid對應的數據記錄。
接口用到了一個公用output方法,此方法是輸出json數據的具體實現,示例代碼如下:
function output(,$data="",$code=0,$msg="success") { $out = array("code"=$code,"msg"=>$msg,"data"=>$data); echo json_encode($out); }
注意向客戶端返回數據時使用的是echo輸出而不是return。
本文節選自 《php7實踐指南》 陳小龍著
微信掃一掃,發現更多內容
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22495.html
摘要:第二步添加在項目中創建文件。項目是官方的開源項目,負責實現對容器集群的快速編排。在這里我們會用到四個容器分別將放在四個不同的容器中,通過將四個應用容器關聯到一起組成項目。服務服務的容器將執行我們項目中的代碼。 showImg(https://segmentfault.com/img/bVbpfM5?w=695&h=270);在這篇文章中我們將通過Docker在個人本地電腦上構建一個快速...
摘要:官方地址是目前最流行的框架,發展勢頭迅猛,應用非常廣泛,有豐富的擴展包可以應付你能想到的各種應用場景,框架思想前衛,跟隨時代潮流,提倡優雅代碼,自稱為工匠,其中的模板引擎容器以及擴展包為業務的開發提供了極大的便利。 laravel5.5+ laravel官方地址 laravel是目前最流行的php框架,發展勢頭迅猛,應用非常廣泛,有豐富的擴展包可以應付你能想到的各種應用場景,lara...
摘要:控制只是用來接收請求并請求邏輯處理類。事實上,業務邏輯無需感知網絡,網絡僅僅接入應用的傳輸機制,他不應超出應用中的路由和控制器的范疇。職責分離是編寫健壯應用的關鍵。其他通常,類庫應該以規范組織在我們的應用中。 聲明:本文并非博主原創,而是來自對《Laravel 4 From Apprentice to Artisan》閱讀的翻譯和理解,當然也不是原汁原味的翻譯,能保證90%的原汁性,另...
摘要:原文使用和開發網站應用在領域目前看來新浪云走的比較早,也比較成熟。新浪云需要使用新浪微博的帳號才能登錄和使用。目前,新浪云需要進行實名認證才能創建個以上的應用,所以推薦進行實名認證。 原文:使用SAE和Gitcafe開發網站應用 在PaaS領域目前看來新浪云走的比較早,也比較成熟。相比IaaS,PaaS更能為企業或個人帶來成本上的節約。本文以php為例,記錄了如何在新浪云上注冊創建自...
摘要:的現狀目前是版本,是基于開發。入口文件啟動文件和配置文件框架的入口文件是。在路由中指定控制器類必須寫全命名空間,不然會提示找不到類。目前支持四種數據庫系統以及。使用時發生錯誤,因為在文件中,的默認驅動是。 最近使用 Lumen 做了 2 個業余項目,特此記錄和分享一下。 Lumen 的介紹 在使用一項新的技術時,了解其應用場景是首要的事情。 Lumen 的口號:為速度而生的 La...
閱讀 2791·2021-11-17 09:33
閱讀 4455·2021-09-22 15:57
閱讀 2866·2019-08-30 14:16
閱讀 3133·2019-08-29 14:07
閱讀 2413·2019-08-26 11:55
閱讀 3415·2019-08-23 17:07
閱讀 1725·2019-08-23 16:50
閱讀 2535·2019-08-23 16:08