1. インターフェースはリクエスターに応じて 2 つのタイプに分類できます:
1. 他の内部プロジェクトによって呼び出されるインターフェースです。 (JS 非同期リクエスト インターフェイスとタイマーを含む)。 2. これは外部インターフェイスであり、主に外部開発者による呼び出しのために提供されます。 2 つのインターフェイスの最大の違いは、内部インターフェイスは厳密な認証を必要としないのに対し、外部インターフェイスは厳密な認証を必要とすることです。暗号化と復号化にはさまざまな方法がありますが、最も一般的で簡単なのは http Basic です。認証。たとえば、バックエンドでポップアップするアカウントとパスワードのポップアップ ウィンドウでは、基本的な検証が使用されます。検証に合格するには、アカウントとパスワードを入力する必要があります。ただし、内部インターフェイスに重要な操作が含まれており、他のユーザーから悪意のある要求を受けたくない場合は、暗号化の検証を行う必要があります。2. どのインターフェイスであっても、次の問題を考慮する必要があります:
1. セキュリティ。パラメータの安全性: このためには、基本的には $_INPUT で十分です。認証の要否:内部通知クラス/コールバッククラスのインターフェースであれば、悪意を持って要求されても通常のデータには影響を与えないため、この場合は認証を行う必要は全くありません。たとえば、注文ステータスを同期するインターフェイスを作成すると、その内部のプロセスは、問題のある注文ステータスを持つ注文をクエリし、これらの注文のステータスを更新することです。この種のインターフェイスは値を返す必要がなく、悪意のある人が悪意を持って呼び出したとしても影響を受けないため、認証を行う必要がまったくありません。したがって、検証を追加するかどうかは、実際のインターフェースのロジックに応じて決定されます。 2. リクエストをもう一度お願いできますか?たとえば、インターフェイスが受信した注文番号に基づいてデータを挿入する場合、複数のデータの挿入を避けるために、繰り返されるリクエストを判断する必要があります。3. インターフェース仕様の記述
1. try...catch... 構造体を使用して記述します。 (主に throw はいつでもプログラムを終了できます) 2. ステータス コードを返します。true または false に等しい成功を返さないでください。ドキュメントを書きたい場合は、さまざまなエラー コードの意味も確認する必要があります。呼び出し元がエラーを問い合わせやすくするために、明確に記述してください。例:
<?php $code = 200; // 接口状态码 $name = trim($_INPUT['name']); $age = trim($_INPUT['age']); if (empty($name)) { $code = 401; throw new Exception('名字不能为空'); } if (!is_numeric($age)) { $code = 402; throw new Exception('年龄必须由数字组成'); } $database_obj = new database_class(); $res = $database_obj->save($name, $age); if ( !$res ) { $code = 403; throw new Exception('保存数据失败'); } $msg = 'ok'; } catch ( Exception $e ) { $msg = $e->getMessage(); } output_json($code,$data,$msg); // $data可以放置需要返回的数据 // output_json函数在大function里面有~如果不想引入大function的话可以复制一份到自己项目 // ========END=======
以上がPHPインターフェースにはどのような種類があるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。