74 lines
1.8 KiB
Markdown
74 lines
1.8 KiB
Markdown
### Deserialize incoming requests
|
|
|
|
#### Callbacks (form data)
|
|
|
|
> For successful deserialization of an entity, there must be setters for the passed parameters
|
|
|
|
To automatically get the callback request parameter
|
|
|
|
```php
|
|
|
|
class AppController extends AbstractController
|
|
{
|
|
public function activityAction(\App\Dto\Callback\Activity $activity): Response
|
|
{
|
|
// handle activity
|
|
}
|
|
}
|
|
|
|
```
|
|
|
|
add to the config:
|
|
|
|
```yaml
|
|
retail_crm_service:
|
|
request_schema:
|
|
callback:
|
|
supports:
|
|
- { type: App\Dto\Callback\Activity, params: ["activity"] }
|
|
```
|
|
|
|
request automatically will be deserialization to $activity.
|
|
|
|
#### Body json content
|
|
|
|
```php
|
|
|
|
class AppController extends AbstractController
|
|
{
|
|
public function someAction(\App\Dto\Body $activity): Response
|
|
{
|
|
// handle activity
|
|
}
|
|
}
|
|
|
|
```
|
|
|
|
add to the config:
|
|
|
|
```yaml
|
|
retail_crm_service:
|
|
request_schema:
|
|
client:
|
|
supports:
|
|
- App\Dto\Body
|
|
```
|
|
|
|
#### Serializers
|
|
At this time supported [Symfony serializer](https://symfony.com/doc/current/components/serializer.html) and [JMS serializer](https://jmsyst.com/libs/serializer).
|
|
By default, the library using a Symfony serializer. For use JMS install JMS serializer bundle - `composer require jms/serializer-bundle`
|
|
You can explicitly specify the type of serializer used for request schema:
|
|
|
|
```yaml
|
|
retail_crm_service:
|
|
request_schema:
|
|
client:
|
|
supports:
|
|
# types
|
|
serializer: retail_crm_service.symfony_serializer.adapter # or retail_crm_service.jms_serializer.adapter
|
|
callback:
|
|
supports:
|
|
# types
|
|
serializer: retail_crm_service.jms_serializer.adapter # or retail_crm_service.symfony_serializer.adapter
|
|
```
|