Empfohlene Lektüre: RUHIG
Was ist das? Lassen Sie uns gemeinsam die RESTful-Architektur verstehen
Erhalten Sie ein tieferes Verständnis der API-Entwicklung Dieser Beitrag richtet sich an Personen, die nicht viel über PHP- und API-Entwicklung wissen 1 . Beantworten Sie zuerst zwei einfache Fragen: 1. Kann PHP Clients entwickeln? Antwort: Nein, denn PHP ist eine Skriptsprache und für die Vervollständigung des S-Teils der B/S-Architektur oder C/S-Architektur verantwortlich, also für die Entwicklung des Servers. (Machen Sie sich keine Sorgen um GTK und WinBinder) 2. Warum PHP als erste Wahl für die Serverentwicklung wählen? Antwort: Plattformübergreifend (kann unter UNIX, LINUX, WINDOWS, Mac OS ausgeführt werden), geringer Verbrauch (PHP verbraucht nur sehr wenige Systemressourcen), hohe Betriebseffizienz (relativ gesehen), MySQL Das Perfekte Partner, selbst ist kostenlos und Open Source,...2. Wie verwende ich PHP, um eine API (Anwendung Programmierschnittstelle, Anwendungsprogrammierschnittstelle) zu entwickeln? Leute, die API gemacht haben, sollten verstehen, dass die tatsächliche Entwicklung einer API einfacher ist als die Entwicklung von WEB, aber die Logik kann komplizierter sein, da es sich bei der API tatsächlich um eine Datenausgabe ohne Rendern der Seite handelt, sodass es keine MVC gibt (API hat nur M und C), 1 Genau wie bei der WEB-Entwicklung müssen zunächst einige relevante Parameter vom Client übergeben werden Das Team stimmt sich untereinander ab oder entwickelt einheitliche Normen. 2. Mit Parametern vollständige Datenverarbeitung entsprechend den Anwendungsanforderungen, wie z. B.: Aktualisierung des Aufgabenfortschritts, APP-In-App-Kauf, Übermittlung von Spielendedaten usw. 3. Nachdem die Datenlogik verarbeitet wurde, werden die vom Kunden benötigten relevanten Daten zurückgegeben, z. B.: Aufgabenstatus, In-App-Kaufergebnisse, Spielerinformationen usw. So geben Sie die zurück Daten an den Kunden? Direkte Ausgabeform, wie zum Beispiel: JSON, XML, TEXT usw.4. Nachdem der Client die von Ihnen zurückgegebenen Daten erhalten hat, interagiert er lokal mit dem Benutzer Ein einfaches API-Beispiel, das vorübergehend geschrieben wurde:
- php
- $output = Array();
- $a = @$_GET [ 'a'] ? $_GET['a' ] : '';
- $uid = @$_GET['uid' ] > : 0; if (
- empty
- ($a )) { $output = Array( 'data'
- =>NULL, 'info' =>'Cheat!', 'code'=> -201); ($output));
- } // Nimm die Schnittstelle if
- ( $a
- ==
- 'get_users')
- { //Benutzer prüfen if ($uid ==
- 0)
- { $output =array('data'=>NULL,
- 'info'=>'Die uid ist null!', 'code'=>-401 ; )); }
-
-
//Angenommen, $mysql ist die Datenbank
-
$mysql = array(
-
10001 => ; array(
-
> 10001, 'vip'
=>-
5, 'Spitzname'
-
=> 'Shine 'qq'=>979137,
- 'Gold' =>1500,
- 'powerplay' => array(' 2xp'
- =>12,'gem'=>12
- ,'bingo'=>5,'keys'=>5,'truhe'=>8), 'Edelsteine'=> array('red'=>13 ,'grün'=>3
- ,'blau'=>8, 'gelb'=>17) , 'ctime'=>1376523234, ; 🎜> 'exp'=>16758,
-
), 10002
-
=> Array(
'uid'-
=> ;10002, >50
,-
> 'elva',
-
'email'=>
'elva@ezhi.net'-
, 🎜> 'gold'=>14320
- , 'powerplay'=> array
- ('2xp'=>1,'gem'
- =>120,'bingo'=>51,'keys'
- =>5,'Brust'=>8
- ),
-
'gems'=> array('red' =>13,'grün'=>3,'blau'=>8,'gelb'= >17),
-
'ctime'=> 1376523234,
-
'lastLogin'=>1377123144,
-
'level'=>112,
-
'exp'=>167588,
🎜>- ),
- 10003 => array(
- 'uid' => 10003,
- 'vip' => 5,
- 'Spitzname' => 'Lily',
- ' email' => 'Lily@ezhi.net',
- 'qq' => NULL,
- 'gold' => 1541,
- 2xp'=>2,'gem'=>112 ,'bingo'=>4,'keys'=>7,'Brust'=>8), ('rot'=>13
,-
'grün'=>3,'blau'=>9, 'gelb'=>7), 'ctime' => 1376523234,
'lastLogin'-
=> 1377123144, 'level'
-
=> 10,
'exp'-
=> 1758 ,
),-
); $uidArr
=-
array(
10001-
,10002
,- 10003
);-
if (in_array($uid, $uidArr, true)) {
-
$output = array('data' => NULL, 'info'=> ;'Der Benutzer existiert nicht!', 'code' = > -402);
-
Beenden(json_encode($output));
-
}
-
-
//查询数据库
-
$userInfo = $mysql[$uid];
-
-
//输出数据
-
$output = array(
-
'data' => array(
-
🎜>, >wahr,//是否首次登陆
-
'ungelesen' => 4,//未读消息数量
- 'untask' => 3, //未完成任务
-
), 'info' =>
-
'Hier ist die Nachricht, die häufig in Popup-Fenstern verwendet wird',
//消息提示,客户端常会用此作为给弹窗信息.-
'code ' => 200,
//成功与失败的代码,一般都是正数或者负数-
); Exit(json_encode(
$output-
));
-
} elseif ($a == 'get_games_result'
)-
{ //... die('您正在调 get_games_result 接口!');
-
}
elseif -
($a == 'upload_avatars'
)-
{ //.. .. sterben('您正在调 upload_avatars 接口!');
-
}
-
复制代码Klicktest (für den Client wird diese Adresse auch direkt aufgerufen):
http://www.ezhi.net/api/test/index.php
http:// www. ezhi.net/api/test/index.php?a=get_users
http://www.ezhi.net/api/test/index.php?a=get_users&uid=10001
http:// www. ezhi.net/api/test/index.php?a=get_users&uid=10002
http://www.ezhi.net/api/test/index.php?a=get_users&uid=10003
3 . In tatsächlichen Projekten sollten wir bei der Entwicklung von APIs auf mehrere Dinge achten (nur als Referenz):
1. Es gibt viele Möglichkeiten, mehrere Schnittstellen in einer einzigen Datei zu implementieren, wie zum Beispiel: if. . elseif.. oder Schalter oder dynamische Methode (d. h. die Form des Zugriffs auf den Funktionskörper von TP)
2. Es ist am besten, JSON für die Datenausgabe zu verwenden, JSON verfügt über recht leistungsstarke Cross- Plattformeigenschaften. Alle wichtigen Mainstream-Programmiersprachen auf dem Markt unterstützen JSON-Analyse, und JSON ersetzt nach und nach XML und wird zum gängigen Format für Netzwerkdaten
3. Schnittstellensicherheit, Schnittstellenüberprüfung müssen hinzugefügt werden. Beispielsweise verwenden Client und Server einheitliche Verschlüsselungsmethoden für unterschiedliche Schnittstellen, und der Server muss jede Schnittstelle überprüfen. Dadurch soll sichergestellt werden, dass die Schnittstelle nicht böswillig aktualisiert oder von Hackern böswillig aufgerufen wird, insbesondere bei großen kommerziellen Anwendungen.
4. Bei Online-APIs muss sichergestellt werden, dass alle Schnittstellen normal sind und alle Fehlermeldungen geschlossen sind => error_reporting(0), sonst kann es keine andere Ausgabe geben , der Client konnte die Daten nicht analysieren und stürzte direkt ab!
5. Es gibt einen gewissen Unterschied zwischen der Entwicklung von API und WEB. Wenn es sich um WEB handelt, führt dies möglicherweise nicht zu besonders schwerwiegenden Fehlern. Es kann lediglich zu Fehlern beim Schreiben von Daten kommen , oder es kann dazu führen, dass ein Teil des WEBs falsch ausgerichtet oder verstümmelt ist. Aber wenn es eine API ist, einfach Crash!
6. Für die Schnittstellenentwicklung wird die Verwendung von Frameworks nicht empfohlen. Die Gründe lassen sich in zwei Punkten zusammenfassen (tatsächlich bin ich etwas riskant, schließlich bin ich auch ein TPer). , dies ist die offizielle Website von TP):
1) Clients haben im Allgemeinen extrem hohe Anforderungen an die Reaktionsgeschwindigkeit des Servers. Daher ist es am effizientesten, das originellste PHP zur Vervollständigung zu verwenden Wenn ein Framework verwendet wird, müssen auch verschiedene Elemente geladen werden. Es ist kein zusätzlicher Papierkram erforderlich, genau wie das Tragen von Winterkleidung im Sommer. Stellen Sie sich vor, Sie nutzen beim Spielen auf Ihrem Mobiltelefon eine Anwendung, um einen Vorgang auszuführen, und warten lange, bis sich etwas bewegt. Können Sie es ertragen?
2) Wie oben in Punkt 4 erwähnt, ist das Framework eine sehr erfreuliche Sache für die WEB-Entwicklung, aber für die API können Sie sich wirklich nicht vorstellen, welche Probleme es Ihnen bereiten wird! Am Ende wirst du unglücklich sein~~ Denn viele Frameworks wurden für das WEB entwickelt (ich freue mich auch darauf, eines Tages Frameworks oder Erweiterungen zu sehen, die speziell für die Entwicklung von APIs entwickelt wurden)
Manche Leute haben auch damit Probleme Die Effizienz und Stabilität der Schnittstelle hängt auch von der Person ab, die codiert. Einige Leute sind möglicherweise nicht in der Lage, so schnell zu schreiben wie das Framework, während andere denken, dass die Verwendung des Frameworks kein Problem darstellt Gleichzeitig wird empfohlen, den Code vorher online zu stellen.
Apropos offene Plattformen wie Tencent Weibo und Taobao . Tatsächlich bieten Ihnen diese offenen Plattformen, sogenannte Open, eine solche Schnittstelle. Sie können die von ihnen bereitgestellten Schnittstellendateien (in der Regel JSON oder XML zurückgeben) basierend auf den von ihnen bereitgestellten technischen Dokumenten und den von ihnen festgelegten Formaten und Anforderungen anpassen können ihre relevanten Informationen abrufen, z. B. grundlegende Informationen zu QQ-Benutzern, Taobao-Shop, Produktneuigkeiten usw. Schließen Sie dann die Interaktion in Ihrer Anwendung basierend auf diesen Nachrichten ab.
Tatsächlich ist Ajax auch eine Form des API-Aufrufs. Was denken Sie? Haha~~
Das Obige hat eine kurze Diskussion über die PHP- und mobile APP-Entwicklung (API-Schnittstellenentwicklung) eingeführt, einschließlich Ajax, Taobao Store und Anwendungsinhalte. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.