質問: 最近、フロント側でJSのフレームワーク(Vueやreact)を用いてシングルページアプリケーションを作り、サーバーサイド側は簡易フレームワーク(Pythonで言うところのFlask等)を用いてAPIサーバーを立ち上げるというのをよく聞きます このAPIサーバーというものがフロント側からきたリクエストに対してビジネスロジックを加えてJSONでリスポンスを返すくらいのことはわかっているのですが、サーバーサイド側、データベース、Webサーバー等とどう関連しているのかいまいちピンと来ていません。(どなたか**フロー図でご教授頂けると大変助かります。**) また、もし、このAPIサーバーというものにたいしてバックエンドの処理を機能ごとに呼び出せ、維持管理が楽になる?という側面がある場合、それはマイクロサービスといわれるアーキテクトとどう違うのでしょうか。
回答: 一応回答しておきます。 > > 最近、フロント側でJSのフレームワーク(Vueやreact)を用いてシングルページアプリケーションを作り、 > > サーバーサイド側は簡易フレームワーク(Pythonで言うところのFlask等)を用いて > > APIサーバーを立ち上げるというのをよく聞きます > > > APIサーバ自体の考え方が違うような気がします。 基本APIサーバを立ち上げるのは異なるサービスやソフトとの連携を行うためにつくられるもので 自システム内で収まるのであればAPIサーバを使用するメリットはありません。 (外部から操作できるのでデメリットのほうが大きいです) > > このAPIサーバーというものがフロント側からきたリクエストに対してビジネスロジックを加えて > > JSONでリスポンスを返すくらいのことはわかっているのですが > > > 参照系APIの場合そうですが、更新系APIも存在します。 > > サーバーサイド側、データベース、Webサーバー等とどう関連しているのかいまいちピンと来ていません。 > > (どなたかフロー図でご教授頂けると大変助かります。) > > > システムによって構成は変わります。なので質問者様の方で自分に合った事案で検索してみて下さい。 > > また、もし、このAPIサーバーというものにたいしてバックエンドの処理を機能ごとに呼び出せ、 > > 維持管理が楽になる? > > > もしこんなAPIサーバがあったら怖くて使えません。 先にも書きましたが基本APIサーバは異なるサービスやソフトとの連携を目的として使用します。 例えば 「財務会計のWebシステムと自社のシステムとの連携」 「自社HPの使用履歴をExcelにダウンロード」 「動画情報の検索を自分のHPで行いたい」 「地図情報サービスにの自社店舗情報を自動で送り更新する」 とかです。 これも全データに無条件にアクセスはできなくてAPIKeyなどを使い登録者の分だけのアクセスに限定したりします。 (他者に財務会計データ見られたら困るでしょ?) 「Web API」はあくまで自社のシステムの一部に外部との連携をhttps形式で行うための方式となります。