Mercurial > hg > isophonics-drupal-site
comparison core/modules/jsonapi/jsonapi.services.yml @ 18:af1871eacc83
Update to Drupal core 8.7.1
author | Chris Cannam |
---|---|
date | Thu, 09 May 2019 15:33:08 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
17:129ea1e6d783 | 18:af1871eacc83 |
---|---|
1 parameters: | |
2 jsonapi.base_path: /jsonapi | |
3 | |
4 services: | |
5 jsonapi.serializer: | |
6 class: Drupal\jsonapi\Serializer\Serializer | |
7 calls: | |
8 - [setFallbackNormalizer, ['@serializer']] | |
9 arguments: [{ }, { }] | |
10 serializer.normalizer.http_exception.jsonapi: | |
11 class: Drupal\jsonapi\Normalizer\HttpExceptionNormalizer | |
12 arguments: ['@current_user'] | |
13 tags: | |
14 - { name: jsonapi_normalizer } | |
15 serializer.normalizer.unprocessable_entity_exception.jsonapi: | |
16 class: Drupal\jsonapi\Normalizer\UnprocessableHttpEntityExceptionNormalizer | |
17 arguments: ['@current_user'] | |
18 tags: | |
19 # This must have a higher priority than the 'serializer.normalizer.http_exception.jsonapi' to take effect. | |
20 - { name: jsonapi_normalizer, priority: 1 } | |
21 serializer.normalizer.entity_access_exception.jsonapi: | |
22 class: Drupal\jsonapi\Normalizer\EntityAccessDeniedHttpExceptionNormalizer | |
23 arguments: ['@current_user'] | |
24 tags: | |
25 # This must have a higher priority than the 'serializer.normalizer.http_exception.jsonapi' to take effect. | |
26 - { name: jsonapi_normalizer, priority: 1 } | |
27 serializer.normalizer.field_item.jsonapi: | |
28 class: Drupal\jsonapi\Normalizer\FieldItemNormalizer | |
29 arguments: ['@entity_type.manager'] | |
30 tags: | |
31 - { name: jsonapi_normalizer } | |
32 serializer.normalizer.field.jsonapi: | |
33 class: Drupal\jsonapi\Normalizer\FieldNormalizer | |
34 tags: | |
35 - { name: jsonapi_normalizer } | |
36 serializer.normalizer.resource_identifier.jsonapi: | |
37 class: Drupal\jsonapi\Normalizer\ResourceIdentifierNormalizer | |
38 arguments: ['@entity_field.manager'] | |
39 tags: | |
40 - { name: jsonapi_normalizer } | |
41 serializer.normalizer.data.jsonapi: | |
42 class: Drupal\jsonapi\Normalizer\DataNormalizer | |
43 tags: | |
44 - { name: jsonapi_normalizer } | |
45 serializer.normalizer.resource_object.jsonapi: | |
46 class: Drupal\jsonapi\Normalizer\ResourceObjectNormalizer | |
47 tags: | |
48 - { name: jsonapi_normalizer } | |
49 serializer.normalizer.content_entity.jsonapi: | |
50 class: Drupal\jsonapi\Normalizer\ContentEntityDenormalizer | |
51 arguments: ['@entity_type.manager', '@entity_field.manager', '@plugin.manager.field.field_type'] | |
52 tags: | |
53 - { name: jsonapi_normalizer } | |
54 serializer.normalizer.config_entity.jsonapi: | |
55 class: Drupal\jsonapi\Normalizer\ConfigEntityDenormalizer | |
56 arguments: ['@entity_type.manager', '@entity_field.manager', '@plugin.manager.field.field_type'] | |
57 tags: | |
58 - { name: jsonapi_normalizer } | |
59 serializer.normalizer.jsonapi_document_toplevel.jsonapi: | |
60 class: Drupal\jsonapi\Normalizer\JsonApiDocumentTopLevelNormalizer | |
61 arguments: ['@entity_type.manager', '@jsonapi.resource_type.repository'] | |
62 tags: | |
63 - { name: jsonapi_normalizer } | |
64 serializer.normalizer.link_collection.jsonapi: | |
65 class: Drupal\jsonapi\Normalizer\LinkCollectionNormalizer | |
66 tags: | |
67 - { name: jsonapi_normalizer } | |
68 serializer.normalizer.entity_reference_field.jsonapi: | |
69 class: Drupal\jsonapi\Normalizer\EntityReferenceFieldNormalizer | |
70 tags: | |
71 # This must have a higher priority than the 'serializer.normalizer.field.jsonapi' to take effect. | |
72 - { name: jsonapi_normalizer, priority: 1 } | |
73 serializer.encoder.jsonapi: | |
74 class: Drupal\jsonapi\Encoder\JsonEncoder | |
75 tags: | |
76 - { name: jsonapi_encoder, format: 'api_json' } | |
77 jsonapi.resource_type.repository: | |
78 class: Drupal\jsonapi\ResourceType\ResourceTypeRepository | |
79 arguments: ['@entity_type.manager', '@entity_type.bundle.info', '@entity_field.manager', '@cache.jsonapi_resource_types'] | |
80 jsonapi.route_enhancer: | |
81 class: Drupal\jsonapi\Routing\RouteEnhancer | |
82 tags: | |
83 - { name: route_enhancer } | |
84 jsonapi.field_resolver: | |
85 class: Drupal\jsonapi\Context\FieldResolver | |
86 arguments: ['@entity_type.manager', '@entity_field.manager', '@entity_type.bundle.info', '@jsonapi.resource_type.repository', '@module_handler'] | |
87 jsonapi.include_resolver: | |
88 class: Drupal\jsonapi\IncludeResolver | |
89 arguments: | |
90 - '@entity_type.manager' | |
91 - '@jsonapi.entity_access_checker' | |
92 paramconverter.jsonapi.entity_uuid: | |
93 parent: paramconverter.entity | |
94 class: Drupal\jsonapi\ParamConverter\EntityUuidConverter | |
95 calls: | |
96 - [setLanguageManager, ['@language_manager']] | |
97 tags: | |
98 # Priority 10, to ensure it runs before @paramconverter.entity. | |
99 - { name: paramconverter, priority: 10 } | |
100 paramconverter.jsonapi.resource_type: | |
101 class: Drupal\jsonapi\ParamConverter\ResourceTypeConverter | |
102 arguments: ['@jsonapi.resource_type.repository'] | |
103 tags: | |
104 - { name: paramconverter } | |
105 jsonapi.exception_subscriber: | |
106 class: Drupal\jsonapi\EventSubscriber\DefaultExceptionSubscriber | |
107 tags: | |
108 - { name: event_subscriber } | |
109 arguments: ['@jsonapi.serializer', '%serializer.formats%'] | |
110 | |
111 logger.channel.jsonapi: | |
112 parent: logger.channel_base | |
113 arguments: ['jsonapi'] | |
114 | |
115 # Cache. | |
116 cache.jsonapi_resource_types: | |
117 class: Drupal\Core\Cache\MemoryCache\MemoryCache | |
118 # We need this to add this to the Drupal's cache_tags.invalidator service. | |
119 # This way it can invalidate the data in here based on tags. | |
120 tags: [{ name: cache.bin }] | |
121 | |
122 # Route filter. | |
123 jsonapi.route_filter.format_setter: | |
124 class: Drupal\jsonapi\Routing\EarlyFormatSetter | |
125 tags: | |
126 # Set to a high priority so it runs before content_type_header_matcher | |
127 # and other filters that might throw exceptions. | |
128 - { name: route_filter, priority: 100 } | |
129 | |
130 # Access Control | |
131 jsonapi.entity_access_checker: | |
132 class: Drupal\jsonapi\Access\EntityAccessChecker | |
133 public: false | |
134 arguments: ['@jsonapi.resource_type.repository', '@router.no_access_checks', '@current_user', '@entity.repository'] | |
135 calls: | |
136 - [setNodeRevisionAccessCheck, ['@?access_check.node.revision']] # This is only injected when the service is available. | |
137 - [setMediaRevisionAccessCheck, ['@?access_check.media.revision']] # This is only injected when the service is available. | |
138 # This is a temporary measure. JSON:API should not need to be aware of the Content Moderation module. | |
139 - [setLatestRevisionCheck, ['@?access_check.latest_revision']] # This is only injected when the service is available. | |
140 access_check.jsonapi.relationship_field_access: | |
141 class: Drupal\jsonapi\Access\RelationshipFieldAccess | |
142 arguments: ['@jsonapi.entity_access_checker'] | |
143 tags: | |
144 - { name: access_check, applies_to: _jsonapi_relationship_field_access, needs_incoming_request: TRUE } | |
145 | |
146 # Route filters. | |
147 method_filter.jsonapi: | |
148 public: false | |
149 class: Drupal\jsonapi\Routing\ReadOnlyModeMethodFilter | |
150 decorates: method_filter | |
151 arguments: ['@method_filter.jsonapi.inner', '@config.factory'] | |
152 | |
153 # Controller. | |
154 jsonapi.entity_resource: | |
155 class: Drupal\jsonapi\Controller\EntityResource | |
156 arguments: | |
157 - '@entity_type.manager' | |
158 - '@entity_field.manager' | |
159 - '@jsonapi.resource_type.repository' | |
160 - '@renderer' | |
161 - '@entity.repository' | |
162 - '@jsonapi.include_resolver' | |
163 - '@jsonapi.entity_access_checker' | |
164 - '@jsonapi.field_resolver' | |
165 - '@jsonapi.serializer' | |
166 - '@datetime.time' | |
167 - '@current_user' | |
168 jsonapi.file_upload: | |
169 class: Drupal\jsonapi\Controller\FileUpload | |
170 arguments: | |
171 - '@current_user' | |
172 - '@entity_field.manager' | |
173 - '@jsonapi.file.uploader.field' | |
174 - '@http_kernel' | |
175 | |
176 # Event subscribers. | |
177 jsonapi.custom_query_parameter_names_validator.subscriber: | |
178 class: Drupal\jsonapi\EventSubscriber\JsonApiRequestValidator | |
179 tags: | |
180 - { name: event_subscriber } | |
181 jsonapi.resource_response.subscriber: | |
182 class: Drupal\jsonapi\EventSubscriber\ResourceResponseSubscriber | |
183 arguments: ['@jsonapi.serializer'] | |
184 tags: | |
185 - { name: event_subscriber } | |
186 jsonapi.resource_response_validator.subscriber: | |
187 class: Drupal\jsonapi\EventSubscriber\ResourceResponseValidator | |
188 arguments: ['@jsonapi.serializer', '@logger.channel.jsonapi', '@module_handler', '@app.root'] | |
189 calls: | |
190 - [setValidator, []] | |
191 tags: | |
192 - { name: event_subscriber, priority: 1000 } | |
193 | |
194 # Revision management. | |
195 jsonapi.version_negotiator: | |
196 class: Drupal\jsonapi\Revisions\VersionNegotiator | |
197 public: false | |
198 tags: | |
199 - { name: service_collector, tag: jsonapi_version_negotiator, call: addVersionNegotiator } | |
200 jsonapi.version_negotiator.default: | |
201 arguments: ['@entity_type.manager'] | |
202 public: false | |
203 abstract: true | |
204 jsonapi.version_negotiator.id: | |
205 class: Drupal\jsonapi\Revisions\VersionById | |
206 parent: jsonapi.version_negotiator.default | |
207 tags: | |
208 - { name: jsonapi_version_negotiator, negotiator_name: 'id' } | |
209 jsonapi.version_negotiator.rel: | |
210 class: Drupal\jsonapi\Revisions\VersionByRel | |
211 parent: jsonapi.version_negotiator.default | |
212 tags: | |
213 - { name: jsonapi_version_negotiator, negotiator_name: 'rel' } | |
214 jsonapi.resource_version.route_enhancer: | |
215 class: Drupal\jsonapi\Revisions\ResourceVersionRouteEnhancer | |
216 public: false | |
217 arguments: | |
218 - '@jsonapi.version_negotiator' | |
219 tags: | |
220 - { name: route_enhancer } | |
221 | |
222 # Deprecated services. | |
223 serializer.normalizer.htt_exception.jsonapi: | |
224 alias: serializer.normalizer.http_exception.jsonapi | |
225 deprecated: The "%service_id%" service is deprecated. You should use the 'serializer.normalizer.http_exception.jsonapi' service instead. | |
226 | |
227 # @todo Remove once https://www.drupal.org/project/drupal/issues/2940383 lands. | |
228 jsonapi.file.uploader.field: | |
229 class: Drupal\jsonapi\Controller\TemporaryJsonapiFileFieldUploader | |
230 public: false | |
231 arguments: ['@logger.channel.file', '@file_system', '@file.mime_type.guesser', '@token', '@lock', '@config.factory'] |