なぜAPI Platformなのか
API Platform Advent Calendar 2023 の1日目の記事です!🎄✨
Twitter (X) でもちょいちょいAPI Platformネタを呟いてます!よろしければ フォロー お願いします!
こんな本も書いてます!よろしくお願いします!
はじめに
なんか勢いで作ってしまったAPI Platformアドベントカレンダー、25日埋めるのは無理かもしれませんが、少しずつでも何かまとまった発信ができればと思います。
初日の今日は、「なぜAPI Platformなのか」という話をしてみます。
API Platformとは
API Platform は、Web APIの開発に特化したPHP向けのフルスタックフレームワークです。
本格的なWeb APIの開発に必要な機能を幅広く備えており、PHPでWeb APIを開発する際の技術選定において有力な選択肢の一つとなっています。
プレゼンスの高まり
API Platformは本稿執筆時点ですでに以下のような実績を示しており、近年確実にそのプレゼンスを高めています。
- GitHubリポジトリ のスター数は8,000以上
- 2021年から3年連続でAPI Platform Conferenceというグローバルカンファレンスが開催されており(2021、2022、2023)、有料のカンファレンスにもかかわらず、例年、現地参加者は300人以上、オンライン参加者を含めると500〜700人規模という盛況ぶりを見せている
- 多数のOSSプロジェクトや企業のWebサイトで採用されている
Symfony陣営からのお墨付き
API Platformはいくつかのライブラリで構成されていますが、その中核となるのは、Web APIの開発そのものを担う API Platform Core と呼ばれるライブラリです。API Platform Coreは、PHPのWebアプリケーションフレームーワークの一つである Symfony をベースに作られています。
API Platform Core自体はスタンドアロンでも利用可能です。つまり、API Platform Coreを利用するアプリケーションの側がSymfonyフレームワークで作られていることは必須ではありません。ただし、公式ドキュメント には、Symfonyフレームワークとともに使用することが「推奨」であると明記されています。
また逆に、Symfonyのエコシステムから見ても、API Platformは準公式的な位置付けになっています。例えば、API Platformの公式ドキュメント の冒頭には、Symfonyの作者であるFabien Potencier氏による以下のような推薦の言葉が掲載されています。
API Platform is the most advanced API platform, in any framework or language.
(API Platformは、あらゆるフレームワークおよび言語において最も先進的なAPIプラットフォームだ。)—Fabien Potencier (creator of Symfony)
また、同じくFabien Potencier氏によって書かれたSymfonyの公式入門書である 「Symfony: The Fast Track」 にも、「API Platformを使ってAPIを公開する」 という章があり、API Platformの利用が公式に推奨されていることが分かります。
さらに補足しておくと、Symfonyを以前から愛用している方であれば、SymfonyアプリケーションでWeb APIの機能を実装するためのバンドル(Symfonyにおけるプラグイン機構の名称)として従来はデファクトスタンダードだった FOSRestBundle というライブラリをご存知かもしれません。これについても、2021年9月21日にFOSRestBundleのコア開発者たちによって 開発終了を宣言するとともに代替としてAPI Platformを推奨する声明 が発せられており、現在ではAPI Platformの公式ドキュメントに FOSRestBundleからAPI Platformへの移行ガイド も用意されています。
おわりに
というわけで、API Platformが近年熱そうだよという話をしてみました。
僕自身もここ数年で何度も実務に採用してバリバリ活用しています。まだ発展途上で洗練されきっていない印象もあるというのが正直なところですが、それでもPHPでのWeb APIフレームワークとしてはもうすでに決定版だと感じています。
これを読んで「ちょっとAPI Platform触ってみようかな」という人が少しでも増えてくれたら嬉しいです。
API Platform Advent Calendar 2023、明日は @chatii さんです!お楽しみに!
Discussion