Apigility has a module called content-validation - it allows you to configure input filters for your services, and data requests are transmitted through the input filter for verification, and the corresponding ApiProblem response is returned when the verification is not performed. (see https://apigility.org/documentation/api-primer/content-validation )
This still leaves you with the responsibility of setting up an input filter that will suit your needs.
I would like to check packagist.org for a JSON Schema authentication library that can accept JSON schema and JSON payload and verify that the payload is well formed according to the schema. Then you can easily implement a custom InputFilter and bind it at your service. This will give you confirmation that the main object and auxiliary objects are well formed (i.e.: username, email address, date of birth and address field contain objects, all of which have the address / street / zip / etc).
Jeremy giberson
source share