「標準」のビジネスWebサイトを作成しようとしています。 「標準」とは、このサイトがフロントエンド、バックエンド(ものを処理するため)に通常のHTML5、CSSおよびJavaScriptを実行し、データベースにMySQLを実行することを意味します。これは基本的なCRUDサイトです。フロントエンドは、データベースに保存されているものをすべて作成します。バックエンドは、ユーザーが入力したものをデータベースに書き込み、何らかの処理を行います。ほとんどのサイトと同じように。
コーディングを開始するためにGithubリポジトリを作成するときに、フロントエンドバックエンド、との違いを理解していないことに気付きました[〜#〜] api [〜#〜]。私の質問を言い換える別の方法は次のとおりです:APIはこの絵のどこにありますか?
詳細と質問のリストを作成します。実際の質問が何であるかがよくわかるので、具体的な質問がわからないので、わかりやすくします。
さらに詳細:
私の質問:
フロントエンドバックエンドと並んでAPIの役割を説明する長く詳細な回答が推奨されます。答えがプログラミングのモデル(Model-View-Controllerパターン以外のモデル)に依存している場合は、APIの他の考え方について説明してください。ありがとう。私はとても混乱しています。
APIという用語が多くのWeb開発者によって誤用および乱用されている方法に混乱していると思います。
「典型的な」ウェブサイトのアーキテクチャを、「フロントエンド」と「バックエンド」の両方でスケッチしてみましょう。また、これはウェブサイトであるため、明示的に「クライアント」も用意します。 (ブラウザのJavaScriptがサーバー上のMySQLを直接呼び出す方法がないためです。)
明確にするために、使用している用語は次のとおりです。
適切に設計されたプログラムの場合、[これらの各コンポーネントには、他と通信するためのプライベートAPIがあります。 "フロントエンド" PHPコードは、任意のSQL SELECT
ステートメントを直接発行せず、ストアドプロシージャ、事前に許可されたSQL、または個別のPHPの完全に異なるインスタンスへの呼び出しPHP実行バックエンドサーバー上で。これらのストアドプロシージャまたは個別のHTTP呼び出し自体がAPIです。
設計の不純さを考慮に入れても、定義は変わりません。 PHP
ファイルがSQL文字列を直接書き込み、MySQLに送信する場合、IT IS STILL AN API、非常に珍しいものではありますが、繰り返すことはほとんどありません。
AJAX voodooをまったく使用せずに、フロントエンドphpを完全に同期させることは完全に可能です。同じ外部PHP関数を同期ファイルの場合、クライアント側のバージョンと同じAPIを使用していると見なすことができますが、ここで「API」という用語を使用すると、実際の明確さが得られない場合があります。
アプリケーションプログラミングインターフェース としてのAPIは、結局のところ、実際には1つのプログラムが独自のプロセスの外で呼び出すたびに]を指します。上記のAJAX/PHP/MySQLまたはMS Access/SQL Serverのように、フロントエンドとバックエンドの両方を持つプロジェクトでは、他に理由がない限り、お互いをどのように呼び出すかを明示的に指定する価値があります。何かが壊れたときにどこを見ればよいかを簡単に知ることができます。
(そしてpublic APIのトピックは完全に別のものです。上の例では、クライアントに表示されるURLのみが「public API」です。それ以外の場合は、本質的には「プライベート」です。自分の制御が及ばないコードが内部APIを呼び出すことは想定されておらず、そのような結果を完全に拒否するか、将来そのようにする権利を留保します。