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']