forked from WycliffeAssociates/en_btr_backend
208 lines
7.6 KiB
PHP
208 lines
7.6 KiB
PHP
<?php
|
|
|
|
return [
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Resolver
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| The API's resolver is the class that works out the fully qualified
|
|
| class name of adapters, schemas, authorizers and validators for your
|
|
| resource types. We recommend using our default implementation but you
|
|
| can override it here if desired.
|
|
*/
|
|
'resolver' => \CloudCreativity\LaravelJsonApi\Resolver\ResolverFactory::class,
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Root Namespace
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| The root namespace for JSON API classes for this API. If `null`, the
|
|
| namespace will default to `JsonApi` within your application's root
|
|
| namespace (obtained via Laravel's `Application::getNamespace()`
|
|
| method).
|
|
|
|
|
| The `by-resource` setting determines how your units are organised within
|
|
| your root namespace.
|
|
|
|
|
| - true:
|
|
| - e.g. App\JsonApi\Posts\{Adapter, Schema, Validators}
|
|
| - e.g. App\JsonApi\Comments\{Adapter, Schema, Validators}
|
|
| - false:
|
|
| - e.g. App\JsonApi\Adapters\PostAdapter, CommentAdapter}
|
|
| - e.g. App\JsonApi\Schemas\{PostSchema, CommentSchema}
|
|
| - e.g. App\JsonApi\Validators\{PostValidator, CommentValidator}
|
|
|
|
|
*/
|
|
'namespace' => null,
|
|
'by-resource' => true,
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Model Namespace
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Here you can decide where your api models live.
|
|
| By default (i.e. set to null), the package assumes they will live in
|
|
| your application's root namespace, but you could set it to something
|
|
| different here. E.g. `App\Models`.
|
|
|
|
|
*/
|
|
'model-namespace' => null,
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Resources
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Here you map the list of JSON API resources in your API to the actual
|
|
| record (model/entity) classes they relate to.
|
|
|
|
|
| For example, if you had a `posts` JSON API resource, that related to
|
|
| an Eloquent model `App\Post`, your mapping would be:
|
|
|
|
|
| `'posts' => App\Post::class`
|
|
*/
|
|
'resources' => [
|
|
'books' => \App\Book::class,
|
|
'chapters' => \App\Chapter::class,
|
|
'verses' => \App\Verse::class,
|
|
'words' => \App\Word::class,
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Eloquent
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Whether your JSON API resources predominantly relate to Eloquent models.
|
|
| This is used by the package's generators.
|
|
|
|
|
| You can override the setting here when running a generator. If the
|
|
| setting here is `true` running a generator with `--no-eloquent` will
|
|
| override it; if the setting is `false`, then `--eloquent` is the override.
|
|
|
|
|
*/
|
|
'use-eloquent' => true,
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| URL
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| The API's url, made up of a host, URL namespace and route name prefix.
|
|
|
|
|
| If a JSON API is handling an inbound request, the host will always be
|
|
| detected from the inbound HTTP request. In other circumstances
|
|
| (e.g. broadcasting), the host will be taken from the setting here.
|
|
| If it is `null`, the `app.url` config setting is used as the default.
|
|
| If you set `host` to `false`, the host will never be appended to URLs
|
|
| for inbound requests.
|
|
|
|
|
| The name setting is the prefix for route names within this API.
|
|
|
|
|
*/
|
|
'url' => [
|
|
'host' => null,
|
|
'namespace' => '/api/v1',
|
|
'name' => 'api:v1:',
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Controllers
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| The default JSON API controller wraps write operations in transactions.
|
|
| You can customise the connection for the transaction here. Or if you
|
|
| want to turn transactions off, set `transactions` to `false`.
|
|
|
|
|
*/
|
|
'controllers' => [
|
|
'transactions' => true,
|
|
'connection' => null,
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Jobs
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Defines settings for the asynchronous processing feature. We recommend
|
|
| referring to the documentation on asynchronous processing if you are
|
|
| using this feature.
|
|
|
|
|
| Note that if you use a different model class, it must implement the
|
|
| asynchronous process interface.
|
|
|
|
|
*/
|
|
'jobs' => [
|
|
'resource' => 'queue-jobs',
|
|
'model' => \CloudCreativity\LaravelJsonApi\Queue\ClientJob::class,
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Encoding Media Types
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| This defines the JSON API encoding used for particular media
|
|
| types supported by your API. This array can contain either
|
|
| media types as values, or can be keyed by a media type with the value
|
|
| being the options that are passed to the `json_encode` method.
|
|
|
|
|
| These values are also used for Content Negotiation. If a client requests
|
|
| via the HTTP Accept header a media type that is not listed here,
|
|
| a 406 Not Acceptable response will be sent.
|
|
|
|
|
| If you want to support media types that do not return responses with JSON
|
|
| API encoded data, you can do this at runtime. Refer to the
|
|
| Content Negotiation chapter in the docs for details.
|
|
|
|
|
*/
|
|
'encoding' => [
|
|
'application/vnd.api+json',
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Decoding Media Types
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| This defines the media types that your API can receive from clients.
|
|
| This array is keyed by expected media types, with the value being the
|
|
| service binding that decodes the media type.
|
|
|
|
|
| These values are also used for Content Negotiation. If a client sends
|
|
| a content type not listed here, it will receive a
|
|
| 415 Unsupported Media Type response.
|
|
|
|
|
| Decoders can also be calculated at runtime, and/or you can add support
|
|
| for media types for specific resources or requests. Refer to the
|
|
| Content Negotiation chapter in the docs for details.
|
|
|
|
|
*/
|
|
'decoding' => [
|
|
'application/vnd.api+json',
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Providers
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Providers allow vendor packages to include resources in your API. E.g.
|
|
| a Shopping Cart vendor package might define the `orders` and `payments`
|
|
| JSON API resources.
|
|
|
|
|
| A package author will define a provider class in their package that you
|
|
| can add here. E.g. for our shopping cart example, the provider could be
|
|
| `Vendor\ShoppingCart\JsonApi\ResourceProvider`.
|
|
|
|
|
*/
|
|
'providers' => [],
|
|
|
|
];
|