[ 
https://issues.apache.org/jira/browse/FINERACT-1229?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Vorburger updated FINERACT-1229:
----------------------------------------
    Component/s: System

> Support mandatory API Resource operation parameters declaratively
> -----------------------------------------------------------------
>
>                 Key: FINERACT-1229
>                 URL: https://issues.apache.org/jira/browse/FINERACT-1229
>             Project: Apache Fineract
>          Issue Type: Improvement
>          Components: System
>            Reporter: Michael Vorburger
>            Priority: Major
>              Labels: technical
>
> While I was fixing FINERACT-1036 (see upcoming PR), and adding a manual 
> non-null check ad hoc for that particular problem, it occurred to me that it 
> would be much nicer if we could simply declare validation rules by 
> annotation, such as "required" (not null) for parameters of API Resource 
> methods, or even fields in data classes used as parameters types.
> In an ideal world, I would expect this to then be picked up by both at 
> runtime for validation, and by the Swagger Code Gen to dig what is a required 
> in the JSON.
> {{jakarta.validation.constraints.NotNull}} seems suitable, but I've tried 
> adding that to the respective arguments ({{FormDataContentDisposition}} and 
> {{FormDataBodyPart}})  of theĀ 
> {{org.apache.fineract.infrastructure.documentmanagement.api.DocumentManagementApiResource.createDocument()}}
>  method - but it didn't seem to do anything.
> I'm guessing some Spring / JAX RS / Bean Validation integration magic would 
> be required for this. I'm sure it exists, but haven't into it - someone could 
> look into this some time under this issue. (For the short term in 
> FINERACT-1036, I'm manually null checking, and throwing a 
> {{jakarta.validation.ValidationException}} - but at least already 
> contributing the {{ValidationExceptionExceptionMapper}} which can be re-used 
> when we implement this.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to