ホームページ >バックエンド開発 >PHPチュートリアル >Laravel & Lumen RESTFul API 拡張パッケージ: Dingo API (1) -- インストールと設定
Dingo API は、独自の API を簡単かつ迅速に構築するのに役立つ完全なツール セットを開発者に提供します。これらのツールには次のものが含まれます:
composer require dingo/api:1.0.x@devインストール完了後の操作は、使用しているフレームワークによって異なります。
Dingo\Api\Provider\LaravelServiceProvider::class拡張機能パッケージの構成をカスタマイズしたい場合は、config ディレクトリに公開できます:
php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"Lumen
$app->register(Dingo\Api\Provider\LumenServiceProvider::class);
API_STANDARDS_TREE=vnd
API_SUBTYPE=myapp
.env ファイルでプレフィックスを構成できます:
API_PREFIX=apiまたはサブドメイン名:
API_DOMAIN=api.myapp.com
.env ファイルで設定できます:
API_VERSION=v1
.env ファイルで設定できます:
API_NAME=My API
API_CONDITIONAL_REQUEST=false
Strict モードが有効で無効な Accept ヘッダーが使用されている場合、API は SymfonyComponentHttpKernelExceptionBadRequestHttpException 例外をスローします。
このオプションは .env で設定できます:
API_STRICT=false
$app['Dingo\Api\Auth\Auth']->extend('oauth', function ($app) { return new Dingo\Api\Auth\Provider\JWT($app['Tymon\JWTAuth\JWTAuth']);});
より複雑な設定もサービス プロバイダーまたはスタートアップ ファイルで行う必要があります:
$app['Dingo\Api\Http\RateLimit\Handler']->extend(function ($app) { return new Dingo\Api\Http\RateLimit\Throttle\Authenticated;});
$app['Dingo\Api\Transformer\Factory']->setAdapter(function ($app) { $fractal = new League\Fractal\Manager; $fractal->setSerializer(new League\Fractal\Serializer\JsonApiSerializer); return new Dingo\Api\Transformer\Adapter\Fractal($fractal);});
API_DEFAULT_FORMAT=jsonより高度な形式の構成には、構成ファイルを config ディレクトリに公開するか、サービス プロバイダーおよび起動ファイルで操作する必要があります:
Dingo\Api\Http\Response::addFormatter('json', new Dingo\Api\Http\Response\Format\Jsonp);
如果扩展包遇到错误将会尝试生成错误响应而不是将异常抛给用户,错误格式可以进行自定义配置。该配置必须在 config 目录下对应的配置文件(Laravel)或启动文件(Lumen)中实现:
$app['Dingo\Api\Exception\Handler']->setErrorFormat([ 'error' => [ 'message' => ':message', 'errors' => ':errors', 'code' => ':code', 'status_code' => ':status_code', 'debug' => ':debug' ]]);
如果开启了调试模式的话吗,生成的错误信息会被扩展包放到 debug 键中,并与堆栈跟踪信息一起显示出来。
你可以在配置文件 .env 中配置:
API_DEBUG=true