Hi Janak,
Thank you for the information. Adding one extra point,
- When using anyOf, allOf or oneOf phrases in swagger 3, we can mark
single attributes required as follows.
ChildObject:
allOf:
- $ref: '#/components/schemas/ParentObject'
- *required:*
* - id*
properties:
id:
type: string
example: ABC001
description: Some description.
Regards,
Vihanga.
On Thu, Aug 29, 2019 at 3:29 PM Janak Amarasena <[email protected]> wrote:
> Hi all,
>
> For new REST APIs written for product IS that is being dispatched from
> identity-rest-dispatcher[1] it is now possible to do input validations[2]
> such as; request body property null check, input validation against regx
> patterns, etc. You can define the required validations in the DTOs,
> methods, etc and add the @Valid annotation to mark that validation is
> required[3].
>
> Any input validation errors will be caught by the
> InputValidationExceptionMapper[4]. The error response will be as follows;
> Status code 400
> {
> "code": "UE-10000",
> "message": "Invalid Request",
> "description": "<All input validation errors caught>",
> "traceId": "<correlation id>"
> }
>
> Example
> {
> "code": "UE-10000",
> "message": "Invalid Request",
> "description": "Property displayName cannot be null. Property
> description does not conform to ^([a-z]{7})$ pattern.",
> "traceId": "d9bb6c40-980b-4a47-a6e9-2849ecb0acf6"
> }
> The error descriptoin is taken from the message property of the validation
> annotation.
> Ex: @NotNull(message = "Property displayName cannot be null.")
>
> If you are using the [5] for swagger code generation then you can mark the
> required fields in the swagger and also the relevant regx patterns[6] and
> the gen tool will add the relevant annotations to the code for validation.
>
> Currently, the gen tool supports adding @NotNull for required fields
> and @Pattern for regex patterns defined in the swagger.
> For @NotNull the message will be generated in the following format; "
> Property <property_name> cannot be null."
> For @Pattern the message will be generated in the following format; "
> Property <property_name> does not conform to <regx_pattern> pattern."
>
> [1] - https://github.com/wso2/identity-rest-dispatcher
> [2] - https://github.com/wso2/identity-rest-dispatcher/pull/39
> [3] -
> http://cxf.apache.org/docs/validationfeature.html#ValidationFeature-CommonBeanValidation1.1Interceptors
> [4] -
> https://github.com/wso2/identity-rest-dispatcher/blob/master/components/org.wso2.carbon.identity.api.dispatcher/src/main/java/org/wso2/carbon/identity/api/dispatcher/InputValidationExceptionMapper.java
> [5] -
> https://github.com/IsuraD/swagger2cxf-maven-plugin/tree/swagger_to_jar
> [6] -
> https://swagger.io/docs/specification/data-models/data-types/#pattern
>
>
> Best Regards,
> --
> *Janak Amarasena* | Software Engineer | WSO2 Inc.
> (m) +94777764144 | (w) +94112145345 | (e) [email protected]
>
>
> <https://wso2.com/signature>
>
--
Vihanga Liyanage
Software Engineer | WS*O₂* Inc.
M : +*94710124103* | http://wso2.com
[image: http://wso2.com/signature] <http://wso2.com/signature>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev