假装客户的通用响应支持

时间:2018-03-27 11:53:36

标签: java generics feign

我正在使用Feign客户端编写FB客户端。有一个端点可以通过参数化路径进行推广。但根据路径,我可以获得不同类型的响应。

所以我试图使用泛型的单一方法。因为我必须告诉返回类型的方法,我正在参数化返回值的类型,如下所示,

@RequestLine("GET /objects/{type}/{model_id}")
public <T> Entity<T> getObject(
            @Param("type") String theObjectType, @Param("model_id") String theModelId,
            Class<T> theResponseClass);

但问题是,Feign将使用theResponseClass作为正文。 如何实现通用假装客户端方法?

1 个答案:

答案 0 :(得分:1)

您可以只使用 Feigns 的通用响应类型。遗憾的是,它不是类型安全的,需要将主体作为 inputStream 或 byte[] 返回。

像这样:

  @RequestLine("GET /objects/{type}/{model_id}")
  public Response getMyData(@Param("model_id") String theModelId)
  {
    return Response.Builder.body(response).build();
  }