ホームページ > バックエンド開発 > PHPの問題 > PHPプロジェクトでのインターフェースの書き方

PHPプロジェクトでのインターフェースの書き方

angryTom
リリース: 2023-02-28 11:02:02
オリジナル
2590 人が閲覧しました

PHPプロジェクトでのインターフェースの書き方

PHP を使用して API (アプリケーション プログラミング インターフェイス、アプリケーション プログラミング インターフェイス) を開発するにはどうすればよいですか?

1. WEB 開発と同様に、最初にいくつかの関連パラメーターが必要です。これらのパラメーターは、クライアント (GET または POST など) によって渡されます。これには、開発チームが相互に通信する必要があります。協定を結ぶか、統一仕様を開発します。

2. パラメーターを使用して、タスクの進行状況の更新、アプリのアプリ内購入、ゲーム終了時のデータ送信など、アプリケーションの要件に従ってデータ処理を完了します。

3.データロジック処理が完了したら、タスクステータス、アプリ内購入結果、プレイヤー情報など、クライアントが必要とする関連データを返します。

データをクライアントに返す方法?

JSON、XML、TEXT などの直接出力フォーム。

4. クライアントは、返されたデータを取得した後、クライアント上でローカルにユーザーと対話します。

一時的に作成された簡単な API の例:

<?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;);
}
ログイン後にコピー

クライアントの場合たとえば、次のようなアドレスを直接呼び出します:

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
ログイン後にコピー

実際のプロジェクトでは、API を開発するときにいくつかの点に注意する必要があります (参考のみ):

# 1. 複数のインターフェイスを 1 つのファイルに実装するには、if..elseif..、switch、動的メソッド (つまり、TP の関数本体にアクセスする形式) など、さまざまな方法があります。

2データの場合 出力には json を使用するのが最善です。JSON は非常に強力なクロスプラットフォーム特性を持っています。市場のすべての主要な主流プログラミング言語は json 解析をサポートしています。JSON は徐々に xml に取って代わり、ネットワーク データのユニバーサル形式になりつつあります.

3. インターフェイスのセキュリティ、インターフェイスの検証を必ず追加してください。たとえば、クライアントとサーバーはさまざまなインターフェイスに統一された暗号化方式を使用しており、サーバーは各インターフェイスを検証する必要があります。これは、特に大規模な商用アプリケーションの場合、インターフェースがハッカーによって悪意を持って更新されたり、悪意を持って呼び出されたりするのを確実に防ぐためです。

4. オンライン API の場合、すべてのインターフェイスが正常であり、すべてのエラー メッセージが閉じられていることを確認する必要があります => error_reporting(0)。JSON を出力する場合、他の出力はできません。そうでない場合、クライアントは解析します。失敗、ダイレクトクラッシュ!

5. API の開発と WEB の開発には一定の違いがあります。WEB の場合は、コードが間違っている可能性がありますが、特に重大なエラーにはなりません。データの書き込みとクエリの失敗が発生するだけである可能性があります。 WEB上で一部の部分がずれたり文字化けしたりする場合があります。ただし、API の場合はクラッシュするだけです。

PHP 関連の知識の詳細については、

PHP 中国語 Web サイト をご覧ください。

以上がPHPプロジェクトでのインターフェースの書き方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート