この質問は、しばらく前から私の頭の中にあります。
API (SOAP、REST など) を備えた PHP Web サイトがあり、この API は、ページ (ブログ投稿、コメント、統計など) で利用できるものとほぼ同じものを提供しているとします。
コードの冗長性/重複を避けるために、サイト自体でも API を使用することを考えています。なぜなら、ほとんどのコードの因数分解は MVC のモデルを使用して既に行われていますが、サイトが API を提供する必要がある場合、一部のロジックはまだ二重になっているためです。 .
訪問者が特定のブログの投稿を取得する場合の例:
クラシック GUI:
- HTTP リクエスト: ブラウザから送信
- PHP コントローラー: ユーザー入力の読み取り
- PHP モデル: データベースから投稿を取得する
- PHP コントローラー: ビューに入力する
- PHP ビュー: HTML のレンダリング
- HTTP 応答: ブラウザに送信
API を使用した GUI:
- HTTP リクエスト: ブラウザから送信
- PHP「投稿」コントローラー: ユーザー入力の読み取り
- HTTP API リクエスト: PHP コントローラーによってサイトの API URL に送信されます
- PHP "api" コントローラー: API 要求の読み取り
- PHP モデル: データベースから投稿を取得する
- PHP "api" コントローラー: "api" ビューに入力します。
- PHP "api" ビュー: レンダリング (XML、JSON など)
- HTTP API 応答: ポイント 2 の PHP コントローラーに送信されます。
- PHP コントローラー: ビューに入力する
- PHP ビュー: HTML のレンダリング
- HTTP 応答: ブラウザに送信
私の意見では、GUIは API を消費するレイヤー (新しいレイヤー) であるべきですが、PHP Web サイトでは、API 呼び出しが HTTP リクエストを介して時間がかかるため、パフォーマンスの問題が懸念されます。