Type convertion issue
shrexster42 opened this issue · 0 comments
Please provide us with the following information:
This issue is for a: (mark with an x
)
- [ x ] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)
Minimal steps to reproduce
I have created a FunctionHandler as below
public class SendToDynamicsHandler extends FunctionInvoker<VendorIdentifier, BRParty> {
@FunctionName("processVendor")
public HttpResponseMessage execute(
@HttpTrigger(name = "request", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<VendorIdentifier>> request,
ExecutionContext context) {
VendorIdentifier vendorIdentifier = request.getBody().get();
context.getLogger().info("Vendor Id" + vendorIdentifier.getPartyId());
return request
.createResponseBuilder(HttpStatus.OK)
.body(handleRequest(vendorIdentifier, context))
.header("Content-Type", "application/json")
.build();
}
}
and the VendorIdentifier
POJO as
public class VendorIdentifier {
@JsonProperty("party_id")
private String partyId;
@JsonProperty("status")
private String status;
public String getPartyId() {
return partyId;
}
public void setPartyId(String partyId) {
this.partyId = partyId;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
The payload sent to the function as
{
"party_id": "VEN1234",
"status": "APPROVED"
}
I see a type conversion issue when the function receives the parameter HttpRequestMessage<Optional<VendorIdentifier>> request
. The partyId
property is not populated in the VendorIdentifier
and value is null
. The status
maps correctly as there is no difference between payload and the property in the pojo.
I have marked partyId
using the jackson @JsonProperty
annotation to handle mapping of the payload containing party_id
field into partyId
property, but it does not happen.
Any log messages given by the failure
None
Expected/desired behavior
Jackson annotations should be enforced and POJO mapped properly during type conversion
OS and Version?
Windows 7, 8 or 10. Linux (which distribution). macOS (Yosemite? El Capitan? Sierra?)
Windows 10.
Versions
Azure Functions CLI installed locally - v4.0.4544
Mention any other details that might be useful
Project built using maven as in the sample.
Thanks! We'll be in touch soon.