0
votes

i am using micronaut to write a service communicating with another service.

I am using declarative http-client.

While sending a request object with declarative http-client, while serialization, something wraps the object equal to the parameter name of the

I have an Object which shall be serialized

@Getter // lombok
@Setter
@Serdeable
public class RequestObject {
private Long id;
}

The http-client looks like the following, using documentation. (Jackson is excluded, only Micronaut SerDes is use)

@Client(id = "thirdservice")
@Header(name = ACCEPT, value = "application/vnd.github.v3+json, application/json")
public interface RemotServiceClient extends RemotServiceOperations {

@Post("/api/endpoint")
ObjectResponse createPostRequest(RequestObject requestObject); // this parameter name is used to wrap

So when i expect the client to serialize RequestObject i would assume the serialization looks like:

{ "id": "123"}

instead it is serializing

{ "requestObject" : { "id": "123"}}

I was reading about @JsonRootName which is disabled by default. Also when i set @JsonRootName("differentValue) there is not effect.

I guess it is some kind of settings within the http-client, which i cannot find out for now. Any tips appreciated.

Also i would like to avoid serializing manually the json from the object, like it is described here.