en_btr_backend/config/json-api-default.php

210 lines
7.7 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,
'lexical-entries' => \App\LexicalEntry::class,
'morph-legends' => \App\MorphLegend::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' => [],
];