この記事では、主に MixPHP を使用して API インターフェイスを開発する方法を紹介します。これには特定の参考値があります。今、あなたに共有します。必要な友人はそれを参照できます。
MixPHP は、Swoole をベースにした一般的なソフトウェアですメモリベースの PHP 高性能フレームワークであり、フレームワークの高性能機能は API インターフェイスの開発に非常に適しており、MixPHP は従来の MVC フレームワークに非常に近いため、インターフェイスの開発が非常に簡単です。
次に、API インターフェイス開発の簡単な例を示します。
id
を使用して、articles
テーブルから記事を取得します。
このインターフェイスにアクセスするための URL:
http://www.e.com/articles/details?id=1
データベース テーブルの構造は次のとおりです:
CREATE TABLE `articles` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `content` varchar(255) NOT NULL, `dateline` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
データベース構成ファイルを変更します, MixPHP アプリケーション構成ファイルでは、データベースに関する情報は common/config/database.php ファイルを参照します。
アプリケーション構成ファイルを変更します:
応答コンポーネントのデフォルトの出力形式を変更しますJSON 形式に変換します。
404/500 エラーの出力形式を JSON 形式に変更します。
フレームワークのデフォルトの 404/500 応答は Web ページであり、API サービスは JSON データに応答する必要があります。通常は他の従来の MVCフレームワークでは多くの箇所を変更する必要がありますが、この要件を満たすために、MixPHP 自体がこの構成を提供しており、構成を変更するだけで済みます。
MixPHP のデフォルト Web アプリケーションには 2 つの構成ファイルがあります。つまり、
main.php: mix-httpd にデプロイされるときに使用されます。
main_compatibility.php: Apache/PHP-FPM でデプロイされる場合に使用されます。
API を開発する場合は、Apache/PHP-FPM で開発し、オンライン化後に mix-httpd にデプロイすることを推奨します。
ここで、次のように、応答キー名の下の defaultFormat キーを mix\http\Error::FORMAT_JSON に変更します。
// 响应 'response' => [ // 类路径 'class' => 'mix\http\compatible\Response', // 默认输出格式 'defaultFormat' => mix\http\Response::FORMAT_JSON, // json 'json' => [ // 类路径 'class' => 'mix\http\Json', ], // jsonp 'jsonp' => [ // 类路径 'class' => 'mix\http\Jsonp', // callback键名 'name' => 'callback', ], // xml 'xml' => [ // 类路径 'class' => 'mix\http\Xml', ], ],
次に、main_compatibility のエラー キー名の下の format キーを変更します。 .php ファイルを次のように mix\http\Error::FORMAT_JSON に追加します:
// 错误 'error' => [ // 类路径 'class' => 'mix\http\Error', // 输出格式 'format' => mix\http\Error::FORMAT_JSON, ],
コントローラーの作成:
apps/index/controllers/ArticlesController.php
<?php namespace apps\index\controllers; use mix\facades\Request; use mix\http\Controller; use apps\index\messages\ErrorCode; use apps\index\models\ArticlesForm; class ArticlesController extends Controller { public function actionDetails() { // 使用模型 $model = new ArticlesForm(); $model->attributes = Request::get(); $model->setScenario('actionDetails'); if (!$model->validate()) { return ['code' => ErrorCode::INVALID_PARAM]; } // 获取数据 $data = $model->getDetails(); if (!$data) { return ['code' => ErrorCode::ERROR_ID_UNFOUND]; } // 响应 return ['code' => ErrorCode::SUCCESS, 'data' => $data]; } }
エラー コード クラスの作成:
apps/index/messages/ErrorCode.php
<?php namespace apps\index\messages; class ErrorCode { const SUCCESS = 0; const INVALID_PARAM = 100001; const ERROR_ID_UNFOUND = 200001; }
フォーム検証モデルの作成:
apps/index/models/ArticlesForm.php
<?php namespace apps\index\models; use mix\validators\Validator; use apps\common\models\ArticlesModel; class ArticlesForm extends Validator { public $id; // 规则 public function rules() { return [ 'id' => ['integer', 'unsigned' => true, 'maxLength' => 10], ]; } // 场景 public function scenarios() { return [ 'actionDetails' => ['required' => ['id']], ]; } // 获取详情 public function getDetails() { return (new ArticlesModel())->getRowById($this->id); } }
データ テーブル モデルの作成:
apps/common/models/ArticlesModel.php
<?php namespace apps\common\models; use mix\facades\RDB; class ArticlesModel { const TABLE = 'articles'; // 获取一行数据通过id public function getRowById($id) { $sql = "SELECT * FROM `" . self::TABLE . "` WHERE id = :id"; $row = RDB::createCommand($sql)->bindParams([ 'id' => $id, ])->queryOne(); return $row; } }
上記はすべてのコードの記述です。
Postman を使用して、次のようにテストします。
インターフェースの開発とテストは完了しました。単純?
上記がこの記事の全内容です。皆様の学習に少しでもお役に立てれば幸いです。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
Swoole の学習 - Swoole の概要# ##################################
以上がMixPHP を使用して API インターフェイスを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。