我有以下 Spring Feign 客户端:
public interface FeignClient {
@GetMapping("/events/query")
EventCollectionResponse getAplomadoEvents(@SpringQueryMap EventParameters parameters);
}
随着
EventParameters
实体朝这边看:
public class EventParameters {
private String order_by;
private String sort;
private String start_at;
private String end_at;
}
外部API接受蛇形命名形式的请求,但我想使用驼峰命名法来命名参数,以维护编码标准。
注释 @JsonProperty("order_by") 在这种情况下没有帮助,因为由于 GET 方法参数,我们在这里不使用 JSON。
我也遇到了同样的问题,花了 4-5 个小时进行调试。实际上 SpringQueryMap 注解内部调用了多个编码器,并且没有一个编码器查找 JsonProperty 注解值。 解决方案是以下任一
所以,更好的解决方案是第一个,但需要大量的实现,坦率地说,我也跳过了它来修复我的用例。第二个选项需要在 POJO 中进行更改,但可以解决问题。
希望有帮助。干杯。
@FormProperty
是 feign 注释,允许设置自定义字段名称。
@Data
public class EventParameters {
@FormProperty("order_by")
private String orderBy;
private String sort;
@FormProperty("start_at")
private String startAt;
@FormProperty("end_at")
private String endAt;
}