Heim >Backend-Entwicklung >PHP-Problem >So schreiben Sie die Schnittstelle in einem PHP-Projekt

So schreiben Sie die Schnittstelle in einem PHP-Projekt

angryTom
angryTomOriginal
2019-11-04 11:17:462567Durchsuche

So schreiben Sie die Schnittstelle in einem PHP-Projekt

Wie verwende ich PHP, um eine API (Application Programming Interface, Anwendungsprogrammierschnittstelle) zu entwickeln?

1. Genau wie bei der WEB-Entwicklung benötigen Sie zunächst einige relevante Parameter, möglicherweise GET oder POST. Dies erfordert, dass das Entwicklungsteam miteinander kommuniziert . Treffen Sie eine Vereinbarung oder entwickeln Sie einheitliche Spezifikationen.

2. Mit Parametern vollständige Datenverarbeitung entsprechend den Anwendungsanforderungen, wie zum Beispiel: Aktualisierung des Aufgabenfortschritts, APP-In-App-Kauf, Übermittlung von Daten am Ende des Spiels usw.

3. Die Verarbeitung der Datenlogik ist abgeschlossen. Geben Sie anschließend die vom Kunden benötigten relevanten Daten zurück, z. B. Aufgabenstatus, In-App-Kaufergebnisse, Spielerinformationen usw.

So geben Sie die Daten an den Kunden zurück ?

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
// 设置json格式
header(&#39;content-type:application/json;charset=utf-8&#39;);
$output = array();
$a = @$_GET[&#39;a&#39;] ? $_GET[&#39;a&#39;] : &#39;&#39;;
$uid = @$_GET[&#39;uid&#39;] ? $_GET[&#39;uid&#39;] : 0;
if (empty($a)) {
    $output = array(&#39;data&#39;=>NULL, &#39;info&#39;=>&#39;数据错误&#39;, &#39;code&#39;=>-201);
    exit(json_encode($output));
}
//走接口
if ($a == &#39;get_users&#39;) {
    //检查用户
    if ($uid == 0) {
        $output = array(&#39;data&#39;=>NULL, &#39;info&#39;=>&#39;The uid is null!&#39;, &#39;code&#39;=>-401);
        exit(json_encode($output));
    }
    //假设 $mysql 是数据库
    $mysql = array(
        10001 => array(
            &#39;uid&#39;=>10001,
            &#39;vip&#39;=>5,
            &#39;nickname&#39; => &#39;Shine X&#39;,
            &#39;email&#39;=>&#39;979137@qq.com&#39;,
            &#39;qq&#39;=>979137,
            &#39;gold&#39;=>1500,
            &#39;powerplay&#39;=> array(&#39;2xp&#39;=>12,&#39;gem&#39;=>12,&#39;bingo&#39;=>5,&#39;keys&#39;=>5,&#39;chest&#39;=>8),
            &#39;gems&#39;=> array(&#39;red&#39;=>13,&#39;green&#39;=>3,&#39;blue&#39;=>8,&#39;yellow&#39;=>17),
            &#39;ctime&#39;=>1376523234,
            &#39;lastLogin&#39;=>1377123144,
            &#39;level&#39;=>19,
            &#39;exp&#39;=>16758,
        ),
        10002 => array(
            &#39;uid&#39;=>10002,
            &#39;vip&#39;=>50,
            &#39;nickname&#39; => &#39;elva&#39;,
            &#39;email&#39;=>&#39;elva@ezhi.net&#39;,
            &#39;qq&#39;=>NULL,
            &#39;gold&#39;=>14320,
            &#39;powerplay&#39;=> array(&#39;2xp&#39;=>1,&#39;gem&#39;=>120,&#39;bingo&#39;=>51,&#39;keys&#39;=>5,&#39;chest&#39;=>8),
            &#39;gems&#39;=> array(&#39;red&#39;=>13,&#39;green&#39;=>3,&#39;blue&#39;=>8,&#39;yellow&#39;=>17),
            &#39;ctime&#39;=>1376523234,
            &#39;lastLogin&#39;=>1377123144,
            &#39;level&#39;=>112,
            &#39;exp&#39;=>167588,
        )
    );
    
    $uidArr = array(10001,10002);
    if (in_array($uid, $uidArr, true)) {
        $output = array(&#39;data&#39; => NULL, &#39;info&#39;=>&#39;The user does not exist!&#39;, &#39;code&#39; => -402);
        exit(json_encode($output));
    }
    //查询数据库
    $userInfo = $mysql[$uid];
    
    //输出数据
    $output = array(
        &#39;data&#39; => array(
            &#39;userInfo&#39; => $userInfo,
            &#39;isLogin&#39; => true,//是否首次登陆
            &#39;unread&#39; => 4,//未读消息数量
            &#39;untask&#39; => 3,//未完成任务
        ), 
        &#39;info&#39; => &#39;Here is the message which, commonly used in popup window&#39;, //消息提示,客户端常会用此作为给弹窗信息。
        &#39;code&#39; => 200, //成功与失败的代码,一般都是正数或者负数
    );
    exit(json_encode($output));
} elseif ($a == &#39;get_games_result&#39;) {
    //...
    die(&#39;您正在调 get_games_result 接口!&#39;);
} elseif ($a == &#39;upload_avatars&#39;) {
    //....
    die(&#39;您正在调 upload_avatars 接口!&#39;);
}

Für den Client Zum Beispiel direkt Rufen Sie eine solche Adresse auf:

http://localhost/api/test/index.php
http://localhost/api/test/index.php?a=get_users
http://localhost/api/test/index.php?a=get_users&uid=10001
http://localhost/api/test/index.php?a=get_users&uid=10002
http://localhost/api/test/index.php?a=get_users&uid=10003

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, z. B. if..elseif.. oder switch oder dynamische Methode (d. h. die Form des Zugriffs auf den Funktionskörper von TP)

2 Es ist am besten, JSON für die Ausgabe zu verwenden. Alle wichtigen Mainstream-Programmiersprachen auf dem Markt unterstützen JSON nach und nach und werden zum universellen Format für Netzwerkdaten 🎜>

3. Schnittstellensicherheit: Fügen Sie unbedingt eine Schnittstellenüberprüfung hinzu. 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), es kann keine andere Ausgabe erfolgen, andernfalls der Client analysiert die Daten. Fehler, direkter Absturz!

5. Es gibt einen gewissen Unterschied zwischen der Entwicklung von API und WEB. Der Code ist möglicherweise falsch, was nicht zu besonders schwerwiegenden Fehlern führen kann Dies kann zu Problemen im WEB führen. Einige Teile sind falsch ausgerichtet oder verstümmelt. Aber wenn es eine API ist, einfach Crash!

Weitere PHP-bezogene Kenntnisse finden Sie auf der

PHP-Chinese-Website!

Das obige ist der detaillierte Inhalt vonSo schreiben Sie die Schnittstelle in einem PHP-Projekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

In Verbindung stehende Artikel

Mehr sehen