Repolode
Luracast

Luracast/Restler

リフレクションを使い、通常のクラスメソッドからルート、バリデーション、OpenAPIドキュメントを生成するPHP 8以降対応のREST APIフレームワーク。

スター
1,386
フォーク
313
未解決の Issue
33
最終コミット
3 日前

これは何?

Restlerでは、通常のPHPクラスメソッドとしてAPIのロジックを記述できます。リフレクションとPHPDocまたは属性を使ってメソッドをHTTPルートにマッピングし、型付きパラメーターを検証して、Swagger UIエクスプローラーを備えたOpenAPI 3.0ドキュメントを生成します。そのため、ルーティングやコントローラーの定型コードを手作業で書く必要がほとんどありません。

デフォルトのレスポンス形式はJSONです。設定すれば、.xml、.csv、.xlsxなどのファイル拡張子で別の出力形式を選択できます。PHP-FPMのほか、常駐型の高スループットな処理にSwooleまたはOpenSwoole、ReactPHP、Workerman、Bref経由のAWS Lambdaで実行できます。また、GraphQLサポート、OAuth 2.0サーバーのサンプル、レート制限機能も含まれています。

PHP 8.0以降を対象としており、Composerでインストールできます。READMEにはv5からの移行ガイドと、CRUD、認証、バージョニング、HTMLテンプレートを扱うサンプルプロジェクトが掲載されています。

主な機能

  • 01リフレクションにより、クラスメソッドをRESTルートに自動マッピング
  • 02型付きパラメーターを検証し、適切なHTTPステータスコードを返す
  • 03PHPDocコメントからSwagger UI付きのOpenAPI 3.0ドキュメントを生成
  • 04デフォルトのJSONに加え、設定に応じてXML、CSV、XLSX、YAML、HTMLに対応
  • 05PHP-FPM、Swoole/OpenSwoole、ReactPHP、Workerman、AWS Lambdaで実行可能
  • 06GraphQLサポート、レート制限、OAuth 2.0サーバーのサンプルを収録

ユースケース

  • 既存のPHPコードベースで社内APIやマイクロサービスを構築する
  • 同じエンドポイントから、モダンなクライアントにはJSON、レガシーシステムにはXMLやCSVを提供する
  • ジェネレーターによるストリーミングで、大規模なデータセットをCSVやExcelとしてエクスポートする
  • REST APIレイヤーを追加して、古いPHPアプリケーションをモダナイズする

クイックスタート

  1. 1

    Composerでパッケージをインストールします

    composer require luracast/restler:^6.0
  2. 2

    APIクラスと、それをマッピングするpublic/index.phpゲートウェイを作成します(READMEを参照)

  3. 3

    組み込みのPHPサーバーを起動します

    php -S localhost:8080 -t public

使う前に知っておきたいこと

  • PHP 8.0以降が必要です。
  • プロジェクトのメタデータにライセンスが指定されていません。
  • バージョン6にはv5からの破壊的変更があるため、アップグレードには移行ガイドが必要です。

収録されている特集

トピック

よくある質問

Restler とは?
リフレクションを使い、通常のクラスメソッドからルート、バリデーション、OpenAPIドキュメントを生成するPHP 8以降対応のREST APIフレームワーク。 Restlerでは、通常のPHPクラスメソッドとしてAPIのロジックを記述できます。リフレクションとPHPDocまたは属性を使ってメソッドをHTTPルートにマッピングし、型付きパラメーターを検証して、Swagger UIエクスプローラーを備えたOpenAPI 3.0ドキュメントを生成します。そのため、ルーティングやコントローラーの定型コードを手作業で書く必要がほとんどありません。
Restler は無料で使えますか?ライセンスは?
Restler にはライセンスが明記されていません。コードは公開されていますが、ライセンスがない場合は再利用の許諾がないため、利用前に作者に確認することをおすすめします。
Restler は今もメンテナンスされていますか?
活発にメンテナンス中。Restler の最終コミットは 2026年11月4日 です。
Restler は何に使えますか?
既存のPHPコードベースで社内APIやマイクロサービスを構築する 同じエンドポイントから、モダンなクライアントにはJSON、レガシーシステムにはXMLやCSVを提供する ジェネレーターによるストリーミングで、大規模なデータセットをCSVやExcelとしてエクスポートする REST APIレイヤーを追加して、古いPHPアプリケーションをモダナイズする
Restler のインストール方法は?
Composerでパッケージをインストールします: composer require luracast/restler:^6.0 APIクラスと、それをマッピングするpublic/index.phpゲートウェイを作成します(READMEを参照) 組み込みのPHPサーバーを起動します: php -S localhost:8080 -t public
Restler はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/Luracast/Restler

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト