Maison  >  Article  >  développement back-end  >  Comment écrire l'interface dans un projet php

Comment écrire l'interface dans un projet php

angryTom
angryTomoriginal
2019-11-04 11:17:462514parcourir

Comment écrire l'interface dans un projet php

Comment utiliser PHP pour développer des API (Application Programming Interface, Application Programming Interface) ?

1. Tout comme le développement WEB, vous avez d'abord besoin de certains paramètres pertinents. Ces paramètres seront transmis par le client, peut-être GET ou POST. Cela nécessite que l'équipe de développement communique entre elle. . Passer un accord ou élaborer un cahier des charges unifié.

2. Avec les paramètres, effectuez le traitement des données en fonction des exigences de l'application, telles que : mise à jour de la progression de la tâche, achat de l'application dans l'application, soumission des données de fin de jeu, etc.

3. Traitement logique des données terminé. Après cela, renvoyez les données pertinentes nécessaires au client, telles que : le statut de la mission, les résultats des achats intégrés, les informations sur le joueur, etc.

Comment renvoyer les données au client ?

Formulaire de sortie directe, tel que : JSON, XML, TEXT, etc.

4. Une fois que le client a obtenu les données que vous avez renvoyées, il interagit avec l'utilisateur localement sur le client

Un exemple d'API simple écrit temporairement :

<?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;);
}

Pour le client Pour Par exemple, appelez directement une telle adresse :

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

Dans les projets réels, nous devons faire attention à plusieurs choses lors du développement d'API (pour référence uniquement) :

1. Il existe de nombreuses façons d'implémenter plusieurs interfaces dans un seul fichier, telles que : if..elseif.. ou switch ou méthode dynamique (c'est-à-dire la forme d'accès au corps de la fonction de TP)

2 Pour les données, il est préférable d'utiliser json pour la sortie. JSON a de très fortes propriétés multiplateformes. Tous les principaux langages de programmation du marché prennent en charge l'analyse json et remplace progressivement XML et devient le format universel pour les données réseau.

3. Sécurité de l'interface, assurez-vous d'ajouter la vérification de l'interface. Par exemple, le client et le serveur utilisent des méthodes de chiffrement unifiées pour différentes interfaces et le serveur doit vérifier chaque interface. Cela permet de garantir que l'interface ne puisse pas être actualisée ou appelée de manière malveillante par des pirates informatiques, en particulier pour les grandes applications commerciales.

4. Pour les API en ligne, il faut s'assurer que toutes les interfaces sont normales et que tous les messages d'erreur sont fermés => error_reporting(0) Lors de la sortie de JSON, il ne peut y avoir aucune autre sortie, sinon le client. analysera les données. Échec, direct Crash !

5. Il existe une certaine différence entre le développement d'API et le WEB. S'il s'agit de WEB, le code peut être erroné, ce qui ne provoquera pas d'erreurs particulièrement graves, ou simplement un échec d'écriture de données et de requêtes. peut causer des problèmes dans WEB. Certaines parties sont mal alignées ou tronquées. Mais s’il s’agit d’une API, crash !

Pour plus de connaissances sur PHP, veuillez visiter le Site Web PHP chinois !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Articles Liés

Voir plus