

山下菜々子
ニックネーム: ななこ / なぁちゃん 年齢: 29歳 性別: 女性 職業: フリーランスWebライター・ブログ運営者(主にライフスタイル・京都観光・お得情報・ Amazonセール解説が得意) 通勤場所: 京都市内のコワーキングスペース(四条烏丸あたりの「大きな窓のある静かな席」を定位置にしている) 通勤時間: 自転車で約15分(気分転換に鴨川沿いのルートを通るのが密かな楽しみ) 居住地: 京都市中京区・二条城の近くにある1LDKの賃貸マンション (築浅で静か・カフェ徒歩圏内が決め手。観葉植物と北欧っぽいインテリアで揃えている) 出身地: 京都府京都市伏見区(酒蔵の景色が大好きで、今でも週末に散歩しに行く) 身長: 158cm 血液型: A型(几帳面だが、好きなことに没頭すると周りが見えなくなるタイプ) 誕生日: 1996年9月14日(乙女座で「計画派だけどロマンチスト」) 趣味: カフェ巡り(特に町家カフェが好き) 読書(エッセイ・恋愛小説・ビジネス書) コスメ研究(新作チェックが日課) 京都の穴場スポット巡り 朝の鴨川ランニング Amazonタイムセールを監視すること(もう職業病) 性格: 穏やかで聞き上手。慎重派だけど、ハマると一気に突き進むタイプ。 好奇心旺盛で「面白いものを見つけたら人に話したくなる」性格。 メンタルは強めだけど、実はガラスのハートのときもあり。 ひとり時間が好きだが、仲の良い友達とまったりおしゃべりも大好き。
APIとは何か
API とは アプリケーション同士がデータや機能をやり取りするための入口となる仕組みを指します。日常のスマホアプリやWebサービスが外部の情報を取りにいくとき、まずはこの API に対してリクエストを送ります。ここで重要なのは 何をどのように要求するかという ルールの約束事です。API はエンドポイントと呼ばれる入り口 URL を持ち、リクエストの形式や返ってくるデータの形式を決めた契約です。ほとんどの API は HTTP を使い REST API や GraphQL などの設計スタイルで話します。REST はリソース中心の直感的な設計、GraphQL は必要なデータだけを取り出せる柔軟性を特徴とします。これらの特徴を理解すると 外部の機能を自分のアプリに組み込みやすくなり 開発の生産性が上がります。 強調したい点は API が提供するのは データや機能の“約束”であり それ自体が動く仕組みではなく 呼び出し方や応答の形式を決める設計思想であるという点です。
この節では API の基本的な仕組みと どういう場面で使われるのかを 抑えることを目的としています。
CGIとは何か
CGI とは Common Gateway Interface の略で 웹サーバーが受け取ったリクエストを外部のプログラムに渡して 動的な HTML などを生成して返す仕組みです。元々は 1990年代前半にウェブのダイナミック性を実現するために作られました。CGI プログラムは通常 Perl や C などの言語で記述され、リクエストごとに新しいプロセスを起動して応答を作ります。これにより その都度データを処理して HTML を作ることができますが 一方でリクエストのたびに新しいプロセスを立ち上げるためにオーバーヘッドが大きく なりがちです。結果として CGI は“古くてシンプルな動的生成の方法”と見做されることが多く 現代の大規模サービスでは別のアーキテクチャへ移行するケースが増えています。
重要なポイントは CGI が目的のデータを返すための機構であり API のような外部と頻繁に対話するための契約陰影とは根本的に異なるという点です。
APIと CGI の違いと使い分け
両者の違いを知ると いつどちらを使えば良いかが見えてきます。API は外部アプリケーション同士の対話を目的とした契約であり データの形式や認証の仕組みを統一しておくことで 安全かつ再利用しやすい設計を作れます。これは現代の分散アーキテクチャやマイクロサービスで特に重要です。一方 CGI はサーバーサイドで動的なページを生成する方法の一つに過ぎず、リクエストごとに新しいプロセスを起動するため負荷が大きくなる場合があります。これが大規模サービスでのパフォーマンス課題につながることがあり 最新の技術では CGI の代わりに常駐型のサーバフレームワークやイベント駆動型の処理が選ばれることが多いです。
使い分けのポイントをまとめると 次のようになります。まずデータの取得や機能の利用を外部のアプリケーションに任せたい場合は API を選ぶべきです。返却データが JSON や XML で あり 形式の統一が必要であることが多く セキュリティ認証の仕組みも整っています。次に HTML を直接生成してユーザーに返す用途なら CGI 的な発想を引き続き使う場面もありますが 多くの場合は現代のフレームワークを使ったサーバーサイドの実装へ置換するのが現実的です。
以下の表は API と CGI の要点を簡潔に比較したものです。
| 項目 | API | CGI |
| 目的 | ||
| 実行モデル | プロセスを起動して処理 | |
| データ形式 | ||
| パフォーマンスの傾向 | ||
| 現代の使いどころ |
まとめると API は現代のWebサービスの“対外的な会話のルール”を提供する設計思想であり CGI は過去の動的ページ生成の実装手法の一つです。目的がデータ連携なら API を優先し 表示の生成だけが目的なら CGI の理解は役立ちます。しかし現代の実務では より効率的なサーバーサイド処理やクラウド上のマイクロサービスを活用する傾向が強く CGI の利用は限定的になっています。
この違いを理解することで 何を選択すべきかの判断材料を得ることができます。
現代の実務でのポイントと実践的なヒント
最後の節では 実務でのポイントをいくつか挙げます。まずは要件の再確認です 外部と連携する必要があるか どの程度のデータ量を扱うか 認証や権限管理はどうするか などを早めに洗い出します。次に設計の原則として API の場合はエンドポイントの命名規則 一貫したデータフォーマット ドキュメントの整備を徹底します。これにより 開発者同士の意思疎通がスムーズになり 将来的な保守性も高まります。最後にパフォーマンスとコストのバランスを考えましょう。 CGI 相当の処理を毎回実行する環境は コストと遅延の両方で影響を受けやすいので 現代のアーキテクチャではキャッシュや非同期処理 そして API ファーストの設計が推奨されます。
このような観点を持つことで 現場での選択がずっと楽になります。
友達とカフェでCGIと API の話をしていた時のこと。友人Aが CGI は古いと笑いながら言い、友人Bは API の方が今のアプリには必須だと力説していました。私は二人の話を聞きながら 「CGI は確かに昔の王道だけど いまもゼロからHTMLを作るときには有効な場面があるんだよ」とつぶやきました。すると友人Bが「でも現代の大規模サービスはどうしてもリクエストの速さと安全性が大事。そこで API を使って別のサービスとやり取りしつつ 表示はフロントエンドで完結させるのが賢い選択になる」と続けます。私は「なるほど つまり CGI は経験として理解しておくべきで API は設計の柱として押さえるべきなんだ」と納得しました。こうした会話は 仕組みを深く知るきっかけになり 学校の課題でAPIとCGIを比較するレポートを書くときにも役立ちました。



















