You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A service is exposing a Conjure Undertow endpoint with an Optional<AuthHeader> header parameter. A Conjure Feign client calls this endpoint with an Optional.empty() value and receives a 400 because this parameter fails to deserialize.
What did you want to happen?
The request from the client should have succeeded.
The conjure spec requires optional headers to be absent from the request to deserialize into an empty optional, otherwise we would not be able to differentiate between a present optional of an empty string, and and absent optional.
Right. Ideally we would fix #790. Although it doesn't seems like we are planning to do that.
Also, without a server-side fix, servers with optional parameters cannot switch to using Undertow endpoints because they cannot guarantee that they will not break existing clients.
The only reason optional parameters work at all today is because both clients and servers do not adhere to the spec.
What happened?
A service is exposing a Conjure Undertow endpoint with an
Optional<AuthHeader>
header parameter. A Conjure Feign client calls this endpoint with anOptional.empty()
value and receives a 400 because this parameter fails to deserialize.What did you want to happen?
The request from the client should have succeeded.
Details
This is related to #790.
This request works against a Jersey service because Jersey will return null if an exception is thrown while deserializing an empty string.
The text was updated successfully, but these errors were encountered: