php與app介面
『壹』 用php寫手機端APP數據介面和PC端數據介面有什麼不一樣
都一樣的 只是由於app不是瀏覽器不雹肢能正常使用cookie所鬧畢以不支持session認證 在做app介面的時候一般都會液肆芹使用自己定義的token來認證 其他的都是一致的
『貳』 PHP---APP介面02
JSON&XML
XML: 是一種嘩碧運標記語言,設計的宗旨是傳輸數據
JSON: 輕量級的數據交換格式
APP介面主要是用JSON輸出格式
APP介面輸出格式三要素:
1. code::錯誤碼
2. msg:錯誤亂梁碼對應的描述
3. data:介面返回的數據
誰有許可權調用APP介面,客戶端需要帶著憑證來調用APP介面
JWT的原理:
服務端認證之後,生成一個JSON對象,返回給用戶。後續客戶端所有請求都會帶上這個JSON對象。服務端依靠這個JSON對象來認定用戶身份。
組成: Header, Payload, Signature
1. Header
說一下我是什麼
{
"alg": "HS256",
"typ": "JWT"
}
header需要經過Base64Url編碼後作為IWT的第一部分。
2. Payload
payload包含了claim, 三種類型reserved, public, private
reserved這些claim是JWT預先定義的,不強制使用,常用的有:
1). iss: 簽發者
2). exp: 過期的時間戳
3). sub: 面向的用戶
4). aud: 接收方
5). iat: 簽發時間
{
"sub": "1234567890",
"name": "John Doe",
"admin": true
}
payload需要經過Base64Url編碼後作為JWT的第二部分。
3. Signature
創建簽名使用編碼後的header和payload以及一個密匙,使用header中指定的簽名演算法進行簽名
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret
)
簽名是在服務端慧沒進行的,客戶端並不知道,所以是安全的。
『叄』 如何用PHP簡單寫App介面
http://community.apicloud.com/bbs/forum.php?mod=viewthread&tid=24908&extra=page%3D1
你可以嫌孫看看芹塵鏈兄行這個
『肆』 手機app介面怎麼和php開發
軟體開發平台是一種軟體開發工具,以通用技術架構(如MVC)為基礎,集成常用建模工具、二次開發包、基礎解決方案等而成。可以大幅縮減編碼率,使開發者有更多時間關注客戶需求,在項目的需求、設計歷友、開發、測試、部署、維護等各個階段均可提供強大的支持。
軟體開發平台源於繁瑣的實踐開發過程中。開純爛謹發人員在實踐中將常用的函數、類、抽象、介面等進行總結、封裝,成為了可以重復使用的「中間件」,而隨著「中間件」的成熟和通用,功能更強大、更能滿足企業級客戶需求的——軟體開平台應運而生。
平台是一段時間內科研成果的匯聚,也是階段性平台期的標志,為行業進入新的研發領域提供了基礎。由於平台對企業核心競爭力的提升非常明顯,目前國內的管理軟體市場,軟體開發平台的應用已經成為一種趨勢。
互聯網是個神奇的大網,大數據開發和軟體定製也是一種模式,這里提供最詳細的報價,如果你真的想做,可以來這里,這個手技的開始數字做基是一八七中間的是三兒零最後的是一四二五零,按照順序組合起來就可以找到,我想說的是,除非你想做或者了解這方面的內容,如果只是湊熱鬧的話,就不要來了。
目前國內的軟體開發平台,除國際品牌如IBM,國內平台商比較強大的平台比如北京開運聯合,支持.NET和java的無縫切換,這也是其能夠廣泛應用的原因。
由於開發環境、開發人員、功能定位、行業背景等的不同,不同品牌的平台存在較大差別。以輕騎兵軟體開發平台為例,其最大特點在於可視化的界面定製、方便快捷的流程配置、按需定義的報表定製、功能完善的二次開發支持。
軟體開發平台相對傳統開發模式的優勢:
1、優化產品基礎架構,提升軟體開發質量;
2、減少編碼率,提高開發效率,提升開發的靈活性;
3、可以充分關注客戶需求,實現按需定製;
4、實現配置組件的標准化,提升產品穩定性和兼容性;
5、提升企業開發能力,降低後期維護的時間和成本
『伍』 為什麼PHP端給app寫介面時返回的json數據要用 echo json_encode()返回,
rerurn是語言中函數或者方法所代表的值,跟變數一樣,儲存在內存中。return是給其他代碼塊一個基悔指針或者引用搏明正。
而伺服器與app(客戶端)交互時,他們無法讀取同一個內存系統,只能通過文本這樣的方式來交換信息。 php相對於APP來說,app 相對於一個列印機了 echo 就是把內容傳送給列印機列印出來了
所以要echo一段文本(json)給客戶槐閉端。
『陸』 php做app介面有什麼規范嗎
PHP通用的DES加米
PHP:
classJoDES{
privatestatic$_instance=NULL;
/**
*@returnJoDES
*/
publicstaticfunctionshare(){
if(is_null(self::$_instance)){
self::$_instance=newJoDES();
}
returnself::$_instance;
}
/**
*加米
*@paramstring$str要處理的字元串
*@paramstring$key加
*@returnstring
*/
publicfunctionencode($str,$key){
$size=mcrypt_get_block_size(MCRYPT_DES,MCRYPT_MODE_CBC);
$str=$this->pkcs5Pad($str,$size);
$aaa=mcrypt_cbc(MCRYPT_DES,$key,$str,MCRYPT_ENCRYPT,$key);
$ret=base64_encode($aaa);
return$ret;
}
/**
*解米
*@paramstring$str要處理的字元串
*@paramstring$key解碧襲米Key,為8個位元組長度
*@returnstring
*/
publicfunctiondecode($str,$key){
$strBin=base64_decode($str);
$str=mcrypt_cbc(MCRYPT_DES,$key,$strBin,MCRYPT_DECRYPT,$key);
$str=$this->pkcs5Unpad($str);
return$str;
}
functionhex2bin($hexData){
$binData="";
for($i=0;$i<strlen($hexData);$i+=2){
悔山兄$binData.=chr(hexdec(substr($hexData,$i,2)));
}
return$binData;
}
functionpkcs5Pad($text,$blocksize){
$pad=$blocksize-(strlen($text)%$blocksize);
return$text.str_repeat(chr($pad),$pad);
}
functionpkcs5Unpad($text){
$pad=ord($text{strlen($text)-1});
if($pad>strlen($text))
returnfalse;
if(strspn($text,chr($pad),strlen($text)-$pad)!=$pad)
returnfalse;
唯毀returnsubstr($text,0,-1*$pad);
}
}
『柒』 PHP開發APP介面需要注意哪些問題
PHP開發APP介面需要注意下面問題:
1.制定規范
開發前一定要定好一個規范,比如要定好數據返回的通用參數和格式。關於數據格式,用的比較多的有xml和json,我建議用json,因為json比xml的好處更多。
2.精簡的返回數據
介面數據因符合需要什麼返回什麼的原則,比如要查詢某個用戶的余額和注冊時間,網頁裡面的做法可能是select * from user where
uid=1,但是介面一定要select balance,regtime from user where
uid=1。因為介面返回數據是要有開銷的,要流量的,能少返回數據就盡量少返回,這樣可以大大的提高性能。
3.數據類型要嚴格
要注意數據的類型,整數類型的數據一定要轉為int,因為app客戶端開發的java、object-c語言對數據類型比較嚴格,類型不對會照成app閃退。
4.要寫介面文檔
一定要寫好介面文檔,並按照模塊寫,而且還要書寫規范,最好的格式是:
介面請求地址;請求參數(包括參數名、類型、是否必填);測試參數舉例;返回參數(參數名,並註明每個參數的含義)。
這樣哪怕以後項目很大,以不會照成維護困難的問題。
5.保證代碼正確性
要驗證保證代碼正確無誤,而且生成環境中要屏蔽掉錯誤,避免頭部有額外的輸出,照成返回的json等數據解析失敗而導致app閃退等。
6.要優化代碼的性能
app要求響應迅速,這樣才能給用戶比較好的體驗感。所以移動介面端在處理業務邏輯的時候,要避免不要執行太復雜的sql語句,或者含有大量的循環,能做成緩存的盡量做緩存,比如將首頁的熱點模塊信息可以存到redis緩存中。在不考慮網速的情況下,比較理想的介面響應時間應該是200毫秒以內。
7.不要隨意更改舊介面
app不像網頁,app一旦發布,有人使用之後,介面就不要亂修改了。以後升級也是,修改要在保證介面原有結構之上進行額外的擴展,否則會導致調用舊版介面的app出現bug。
8. 注意介面的安全
安全高於一切,必須要保證介面的安全。電話號碼等敏感信息在傳輸的過程中一定要加密,否則可能會被別人抓包到。拿取用戶信息的介面一定要驗證許可權,以防止介面被惡意調用,泄密用戶信息,甚至篡改信息。
『捌』 如何用php寫app介面原創
先簡單點的,要會php的一些基本的語法。。先建一個並轎test.php , 賦值數組: $return = array( 'id' => '1', 'name' => 'test', ) echo json_encode($return); //直接輸出~嗯,這個是json格式返回的數據 app端渣跡調用test.php文件,能獲絕梁肆取數據。
『玖』 如何用php寫app介面原創 / 藍訊
這個東西有點泛。
我們可以先看看APP介面都需要實現什麼功能
1 APP應用需要獲取新聞列表信息,展示到APP裡面
2 用戶注冊/登錄驗證
3 支付
一般介面交互都用什麼形式呢?
1 XML 2JSON
根據需求,或者說根據自己team的熟練方面,用哪種進行選取。
怎麼做介面呢?
比如是新聞的列表數據
可以放在數據套數組裡面
內層數組 存標題、內容鏈接、作者、更新時間、小圖片地址
外層數組就是把這些一個一個內層數組包進去。
然後用PHP的數組 json_decode 進行編碼,就會變成一個JSON格式的字元串, 只要把這個介面給APP請求,就可以獲取了
然後APP再進行解析填充到裡面 就行了
『拾』 請教一個用php為app做介面的問題如何保證安全性
普通介面
一般為GET請求,比如獲取新聞列表 GET Example.com/纖兄源index.PHP?mole=news&action=list,為了防止採集或者暴力查詢,我們PC端一般做如下處理:
防止本站被它站file_get_contents,所以要識別user_agent,如果不是通過瀏覽器來訪問的話直接不給看。
如果別人通過偽造user_agent來訪問的話,就通過單位時間ip的訪問量來控制抓取方,可以寫一套演算法,如果再一個ip在前後一分鍾多於多少次訪問量來處理。但是,會有一種情況,即某個小塵猜區或公司內都是使用某一個IP的外網的話,這樣搞就會自尋死路,所以還要配合瀏覽器中的cookie來毀態處理
總結: 請求頭可以偽造,IP地址可以變更,cookie可以清空,基本上PC端是很難防這個問題的,比如淘寶,點評等大站的數據我也是經常去採的。