APIを作るのに最適なフレームワークを探す
APIを作る開発案件があったので、APIを作るのにどのフレームワークがいいのかをPHP、Ruby、GOあたりで探してみました。
公開日: 2019.3.28
APIを作る開発案件があったので、APIを作るのにどのフレームワークがいいのかをPHP、Ruby、GOあたりで探してみました。
Lumen (PHP)
PHP製のフレームワークで人気No.1との呼び声も高いLaravelの軽量版です。
PHPなので、共有サーバーなど安価なサーバーも含めて、サーバーの選択肢が広いことのはいいのですが、軽量版のLumenでも結構ファイル数が膨大だったりして、開発コストとしてはちょっと重めです。
また、データベースにSQLiteが使えるので、軽量なAPIだったらMySQLよりも高速に動作してくれるのもいいところです。Laravelと同じ知識が使えるので、日本語の情報が多いのもメリットです。
メリット | デメリット |
---|---|
選べるサーバーが多い 情報が多い | 開発に時間がかかる |
WordPress (PHP)
WordPressnにはWP REST APIという仕組みがあって、WordPressサイトをAPIでデータ取得したり、データ更新したりできます。WordPressをインスアトールするだけで使えるので、データを作成するだけでAPIになるという手軽さが大きなメリットです。
ただ、このWP REST APIは結構曲者で、脆弱性が見つかった際にサイト乗っ取りのリスクがあったり、そもそもWordPressなので動作が重かったりします。
WordPressの管理画面に慣れているとか、すでにWordPressでサイトを作っているという場合以外は、同じPHPならLumenで作った方が良さそうです。
メリット | デメリット |
---|---|
構築が簡単ですぐに作れる | 重い セキュリティリスク |
Sinatra (Ruby)
Railsじゃないの?という感じかもしれませんが、簡易APIであれば軽量なSinatraでも十分です。
DBを使わないのであれば、Rubyが動く共有レンタルサーバーでも動かせるというメリットもあります。逆にDBを使うとなると、VPSなどのある程度しっかりしたサーバーで動かす必要があるので、コスパはあまりよくないかもしれません。
シンプルさが売りのSinatraだけに、シンプルにデータを表示・処理するだけのAPIには向いていますね。
メリット | デメリット |
---|---|
軽量 開発が比較的容易 | サーバーを選ぶ |
HUGO (GO lang)
GO製の静的サイトジェネレータ・HUGOも、json出力に対応しているので、APIとして使うこともできます。
静的サイトなので、動的なAPIは作れませんが、ひたすらレンスポンスを返すだけのサーバーであればHUGOでも十分かもしれません。
ただ、HTMLファイルを返す前提で出来ているので、jsonオンリーのAPIを作るのにはちょっと癖があります。
サーバーはhugoコマンドで出力したファイルであればどんなサーバーでもいけますし(それこそAWS S3とかでも)、Netlifyみたいなホスティングサービスを使えばビルドも一緒にやってくれるので、運用・メンテナンスコストなどを考えると、かなり良い選択肢です。
メリット | デメリット |
---|---|
サーバーを選ばない 高速 無料でも運用できる | ちょっと癖がある 動的APIは作れない 出来ることに限度がある URLが常にindex.jsonになる |
簡単にAPIを作るのに最適なフレームワークを見てきました。
RubyのGrapeなどAPI専門のフレームワークもありますが、将来的な拡張を考えると比較的柔軟なフレームワークを使う方が良さそうですね。