3

我有一个客户端包,其中定义了我的 REST 客户端,其中包含以下接口和模型:

@Path("/")
@RegisterRestClient(configKey = "some-api")
public interface SomeRestClient {
    @POST
    @Path("/oauth/token")
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    OAuthResult getOAuthToken(OAuthRequest oAuthRequest);

}

和 OAuthRequest 类:


import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class OAuthRequest {

    private String email;
    private String password;
    @JsonProperty("grant_type")
    private String grantType;
    @JsonProperty("client_id")
    private String clientId;
    @JsonProperty("client_secret")
    private String clientSecret;
}

我将此包导入到我的主服务包中,但 quarkus 似乎没有获取 Jackson 注释。请求的属性使用驼峰式大小写进行序列化,而它们应该是蛇形大小写。

        @Inject
        @RestClient
        private SomeRestClient someRestClient;
        OAuthRequest oAuthRequest = new OAuthRequest();
        //set fields
        OAuthResult oAuthResult = someRestClient.getOAuthToken(oAuthRequest);

编辑:

我正在使用 quarkus-rest-client-jackson 和 quarkus-rest-client 依赖项,任何地方都没有 jsonb 依赖项。

我试图缩小问题的范围:我已将客户端/请求类移动到我的主包中,并且我已经删除了 lombok 注释并公开了我的包含 Jackson 注释的字段。仍然是同样的问题......有人能指出我做错了什么的正确方向吗?

4

1 回答 1

0

Reasteasy 用于您的 reste 端点不访问远程 REST 服务。要访问远程 REST 服务,需要使用 REST 客户端。

REST 客户端附带 Jackson 支持,您使用quarkus-rest-client-jackson依赖项而不是 JSON-B 依赖项。

于 2020-09-28T11:30:58.163 回答