推奨読書: RESTful
それは何ですか? RESTful アーキテクチャを一緒に理解しましょう
API 開発についてより深く理解しましょう この投稿は、PHP と API 開発についてあまり知らない人向けに書かれています 1. まず、2 つの質問に簡単に答えてください: 1. PHP でクライアントを開発できますか? 答え: いいえ、PHP はスクリプト言語であり、B/S アーキテクチャまたは C/S アーキテクチャの S 部分、つまりサーバーの開発を完了する責任を負っています。 (GTK と WinBinder については心配しないでください) 2. サーバー開発の最初の選択肢として PHP を選択する理由は何ですか? 答え: クロスプラットフォーム (UNIX、LINUX、WINDOWS、Mac OS で実行可能)、低消費電力 (PHP はかなりのシステム リソースを消費します)、高い操作効率 (比較的に)、MySQL の完璧なパートナーです。無料のオープンソース...2. PHP を使用して API (Application プログラミング インターフェイス、アプリケーション プログラミング インターフェイス) を開発する方法は? APIに取り組んだことがある人は、実際のAPIの開発はWEBの開発よりも簡単であることを理解しているはずですが、APIは実際にはページをレンダリングせずにデータを出力するため、MVCはありません(APIにはMしかありません) C) 、1. WEB 開発と同様に、最初にこれらのパラメータがクライアントによって渡される必要があります (おそらく GET または POST)。これは開発チームによって合意される必要があります。定式化される。 2. パラメーターを使用して、タスクの進行状況の更新、アプリ内購入、ゲーム終了時のデータ送信など、アプリケーションの要件に従ってデータ処理を完了します。 3.処理された後、クライアントに返されます。ミッション ステータス、アプリ内購入結果、プレイヤー情報など、使用する必要がある関連データ。データをクライアントに返すにはどうすればよいですか? JSON、XML、TEXT などの直接出力フォーム4. クライアントは、返されたデータを取得した後、クライアント上でローカルにユーザーと対話します 一時的に書かれた簡単な API の例:
- php
- $ 出力=配列();
- $a = @$_GET['a'] ? $_GET [ 'a'] : '';
- $uid =@$_GET ['uid'] ? $_GET['uid'] : 0;
- if(空 ($a)) {
- gt;NULL, 'info'=> exit ( json_encode( $output)); } // インターフェースを取得します
- if ($a ==
- 'get_users')
- {
-
(- $uid == 0) { $output =array
(- 'data'=>
NULL-
, 'info' => 'uid は null!' exit ( json_encode ($output));
- }
-
-
// $mysql がデータベースであると仮定します
-
$mysql = array(
-
10001 =>配列(
-
=>5,
-
=> 『シャインX』,
.com'-
, ' qq' = & gt; 979137、
-
' gold' = & gt; 1500、
'powerPlay'-
= & gt; 配列 array ('2xp'=>
12-
,'gem'=> ;5 ,
'キー-
= >5,'胸'=> '宝石'=>配列('赤'=>13 、 '緑'=> 8 ,'黄'=>17)、 4、 =>
- 1377123144 、 'exp'=>16758、)、 10002 => 'uid'=>10002,
- 'elva'、メール'=>'elva@ezhi.net'
- 、 => >1,
- 「宝石」>120, 「ビンゴ」=> 「チェスト」
- =>8)、
-
'宝石'=> 配列('赤'=>13,'緑' =>3、 '青'=>8、'黄色'=>17)、
-
'ctime'=>1376523234 ,
-
'lastLogin'=>1377123144,
-
'レベル'=>112,
-
' exp'=>167588,
-
),
-
10003 => array(
-
'uid' => 10003,
-
'vip' => 5,
-
'ニックネーム' => 「リリー」,
-
「メール」 => 「Lily@ezhi.net」、
-
'qq' => NULL,
-
'ゴールド' => 1541,
-
「パワープレイ」 => array('2xp'=>2,'gem'=>112 、「ビンゴ」 =>4,'キー'=>7,'チェスト'=>8)、
- の宝石' => array('赤'=>13,'緑'=>3 、'ブルー'=>9,'黄色'=>7)、
-
'ctime' => 1376523234 ,
-
'lastLogin'=> 1377123144,
-
「レベル」 => 10,
-
'exp' => 1758,
-
)、
-
);
-
-
$uidArr = 配列(10001,10002,10003);
-
if (in_array($uid, $uidArr,true )) {
-
$output =配列('データ'=> NULL, '情報'=>'ユーザーは存在しません!' ,'コード'=>-402);
- (json_encode) ($output )); }
-
- [
- $uid];
- //出力データ $output =
- 配列(
-
) 'データ'
-
=>配列(
- => 本当,//そうですか初回ログイン u'unream'
-
= & gt; 4, // 不当なメッセージの数
'untask'-
= & gt; 3,//未完了のタスク
),-
=> 'ここポップアップウィンドウでよく使用されるメッセージです' ,
- //メッセージプロンプト。クライアントはこれをポップアップウィンドウメッセージとしてよく使用します 200,//成功と失敗のコードは通常、正または負の数値です。 son_encode(
$output -
{
); //. ..-
死ね('あなたは調整中ですget_games_result インターフェイス!'); }
elseif - ($a == 'upload_avatar' ){ upload_avatarインターフェース!');
- }
-
コードをコピークリックテスト (クライアントの場合、このアドレスは直接呼び出されることもあります):
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? a=get_users&uid=10002
http://www.ezhi.net/api/test/index.php?a=get_users&uid=10003
3. 実際のプロジェクトでは、API を開発する際にいくつかの点に注意する必要があります (参考)のみ):
1. if..elseif..、スイッチ、動的メソッド (つまり、関数本体にアクセスする TP の形式) など、複数のインターフェイスを 1 つのファイルに実装する方法はたくさんあります。 2. データ出力には json を使用するのが最適です。JSON は非常にクロスプラットフォームです。JSON は徐々に xml に取って代わり、ネットワーク データの汎用形式になりつつあります。 3. インターフェース セキュリティのため、インターフェース検証を追加する必要があります。たとえば、クライアントとサーバーはさまざまなインターフェイスに統一された暗号化方式を使用しており、サーバーは各インターフェイスを検証する必要があります。これは、特に大規模な商用アプリケーションの場合、インターフェースがハッカーによって悪意を持って更新されたり、悪意を持って呼び出されたりするのを確実に防ぐためです。
4. オンライン API の場合は、すべてのインターフェイスが正常であり、すべてのエラー メッセージが閉じられていることを確認する必要があります => error_reporting(0)。そうしないと、クライアントは解析に失敗します。データを直接クラッシュ!
5. API の開発と WEB の場合は、コードが間違っている可能性があり、特に重大なエラーが発生することはありませんが、データの書き込みやクエリの失敗が発生する可能性があります。 WEB の特定の部分がずれている、または意味不明です。ただし、API の場合はクラッシュするだけです。
6. インターフェイス開発を行う場合、フレームワーク開発を使用することはお勧めできません。その理由は次のように要約できます (実際、私は少し危険です。結局のところ、これは公式 Web サイトです)。 TP):
1) クライアント 一般に、サーバーの応答速度に対する要求は非常に高いため、フレームワークを使用する場合は、最も独創的な PHP を使用してインターフェース開発を完了するのが最も効率的です。夏にスーツを着るのと同じように、ファイルを読み込む必要があります。想像してみてください。携帯電話でゲームをしているときに、アプリケーションを使用して何らかの操作を実行し、動きがなくなるまで長時間待つことを耐えられますか。
2) 上記のポイント 4 で述べたように、フレームワークは WEB 開発にとって非常にありがたいものですが、API にとっては、それがどのような問題を引き起こすか本当に想像できません。結局は悲惨なことになりますよ~~ 多くのフレームワークは WEB のために生まれました (私も、いつか API 開発専用に設計されたフレームワークや拡張機能が登場することを楽しみにしています)
インターフェースの効率化や、これに悩んでいる人もいます。安定性は、コードを書く人によっても異なります。フレームワークほど高速に記述できない人もいます。また、フレームワークを使用しても問題ないと考える人もいます。これらは、実際の状況によって異なります。 . オンラインにする前にコードをストレステストすることもお勧めします
そういえば、Tencent Weibo や Taobao などのオープンプラットフォームについて話さなければなりません。実際、これらのオープン プラットフォーム (いわゆるオープン) は、そのようなインターフェイスを提供します。提供されるインターフェイス ファイル (通常は JSON または XML を返します) は、提供される技術ドキュメントと、それらが設定する形式と要件に基づいて調整できます。 QQ ユーザーの基本情報、
淘宝網、製品ニュースなどの関連情報を取得できます。次に、これらのメッセージに基づいてアプリケーションでの対話を完了します。
実はajaxもAPIを呼び出す形式なのですが、どう思いますか? はは〜〜
上記では、ajax、淘宝網ストア、アプリケーション コンテンツなど、PHP およびモバイル APP 開発 (API インターフェイス開発) について簡単に説明しました。PHP チュートリアルに興味のある友人に役立つことを願っています。