我正在使用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
作为正文。
如何实现通用假装客户端方法?
答案 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();
}