Share
Embed
Transcript
25 slides
-
$(whoami) ハンドルネーム: SAW 氏名: 加藤 宗一郎 : @azuki_eater 所属: ゴールドスポンサー
2 Laravel Live Japan 2026 -
Scribe とは? API ドキュメントを生成するための Laravel のライブラリ 理解しやすく実際に動かせる Web UI OpenAPI
仕様書や Postman collection の生成が可能 Laravel 特化の機能 7 Laravel Live Japan 2026 -
インストール方法 1. Composer 経由でインストール 2. 設定ファイルを生成 前提条件 PHP 8.1 以上
Laravel 9 以上 composer require knuckleswtf/scribe php artisan vendor:publish --tag=scribe-config 8 Laravel Live Japan 2026 -
最もシンプルな使い方 1. routes/api.php に API の route を定義 2. php
artisan scribe:generate を実行してドキュメントを生成 /docs から生成されたドキュメントが確認可能 Route::get('/sample', [SampleController::class, 'sample']); Laravel Live Japan 2026 9 -
リクエストボディの情報の追加 1. Laravel のリクエストのバリデーション機能を追加 2. php artisan scribe:generate を実行 $validated
= $request->validate([ 'message' => ['required'], ]); Laravel Live Japan 2026 11 -
レスポンスの出力例を追加 1. 出力例を生成する対象を config/scribe.php で設定 only 引数で対象とするエンドポイントを指定 only 引数を省略するとすべてのエンドポイントが対象 2.
php artisan scribe:generate を実行 'responses' => configureStrategy( Defaults::RESPONSES_STRATEGIES, Strategies\Responses\ResponseCalls::withSettings( only: ['GET *'], config: ['app.debug' => false], ), ), Laravel Live Japan 2026 12 -
レスポンスの出力例を追加 1. 出力例を生成する対象を config/scribe.php で設定 only 引数で対象とするエンドポイントを指定 only 引数を省略するとすべてのエンドポイントが対象 2.
php artisan scribe:generate を実行 only: ['GET *'], 'responses' => configureStrategy( Defaults::RESPONSES_STRATEGIES, Strategies\Responses\ResponseCalls::withSettings( config: ['app.debug' => false], ), ), Laravel Live Japan 2026 12 -
レスポンスの出力例を追加 1. 出力例を生成する対象を config/scribe.php で設定 only 引数で対象とするエンドポイントを指定 only 引数を省略するとすべてのエンドポイントが対象 2.
php artisan scribe:generate を実行 only: ['GET *', 'POST *'], 'responses' => configureStrategy( Defaults::RESPONSES_STRATEGIES, Strategies\Responses\ResponseCalls::withSettings( config: ['app.debug' => false], ), ), Laravel Live Japan 2026 12 -
レスポンスの出力例を追加 1. 出力例を生成する対象を config/scribe.php で設定 only 引数で対象とするエンドポイントを指定 only 引数を省略するとすべてのエンドポイントが対象 2.
php artisan scribe:generate を実行 'responses' => configureStrategy( Defaults::RESPONSES_STRATEGIES, Strategies\Responses\ResponseCalls::withSettings( config: ['app.debug' => false], ), ), Laravel Live Japan 2026 12 -
その他の機能 #[Endpoint()] : エンドポイントのタイトルや説明を追加 #[UrlParam()] : URL パラメーターの詳細を追加 #[QueryParam()] ,
#[BodyParam()] : クエリパラメタやリクエストボディの詳細を追加 #[ResponseFromApiResource()] : ApiResource からレスポンス例を生成 etc… public function find(int $id): SampleMessageResource { $message = SampleMessage::findOrFail($id); return new SampleMessageResource($message); } Laravel Live Japan 2026 14 -
その他の機能 #[Endpoint()] : エンドポイントのタイトルや説明を追加 #[UrlParam()] : URL パラメーターの詳細を追加 #[QueryParam()] ,
#[BodyParam()] : クエリパラメタやリクエストボディの詳細を追加 #[ResponseFromApiResource()] : ApiResource からレスポンス例を生成 etc… #[Endpoint('Find The Sample Message', 'Return the sample message.')] public function find(int $id): SampleMessageResource { $message = SampleMessage::findOrFail($id); return new SampleMessageResource($message); } Laravel Live Japan 2026 14 -
その他の機能 #[Endpoint()] : エンドポイントのタイトルや説明を追加 #[UrlParam()] : URL パラメーターの詳細を追加 #[QueryParam()] ,
#[BodyParam()] : クエリパラメタやリクエストボディの詳細を追加 #[ResponseFromApiResource()] : ApiResource からレスポンス例を生成 etc… #[UrlParam('id', 'integer', 'The ID of the message.')] public function find(int $id): SampleMessageResource #[Endpoint('Find The Sample Message', 'Return the sample message.')] { $message = SampleMessage::findOrFail($id); return new SampleMessageResource($message); } Laravel Live Japan 2026 14 -
その他の機能 #[Endpoint()] : エンドポイントのタイトルや説明を追加 #[UrlParam()] : URL パラメーターの詳細を追加 #[QueryParam()] ,
#[BodyParam()] : クエリパラメタやリクエストボディの詳細を追加 #[ResponseFromApiResource()] : ApiResource からレスポンス例を生成 etc… #[ResponseFromApiResource(SampleMessageResource::class, SampleMessage::class)] return new SampleMessageResource($message); #[Endpoint('Find The Sample Message', 'Return the sample message.')] #[UrlParam('id', 'integer', 'The ID of the message.')] public function find(int $id): SampleMessageResource { $message = SampleMessage::findOrFail($id); } Laravel Live Japan 2026 14 -
その他の機能 #[Endpoint()] : エンドポイントのタイトルや説明を追加 #[UrlParam()] : URL パラメーターの詳細を追加 #[QueryParam()] ,
#[BodyParam()] : クエリパラメタやリクエストボディの詳細を追加 #[ResponseFromApiResource()] : ApiResource からレスポンス例を生成 etc… #[Endpoint('Find The Sample Message', 'Return the sample message.')] #[UrlParam('id', 'integer', 'The ID of the message.')] #[ResponseFromApiResource(SampleMessageResource::class, SampleMessage::class)] public function find(int $id): SampleMessageResource { $message = SampleMessage::findOrFail($id); return new SampleMessageResource($message); } Laravel Live Japan 2026 14