下面是我的接口:
public interface SCIMServiceStub {
@RequestLine("GET /Users/{id}")
SCIMUser getUser(@Param("id") String id);
@RequestLine("GET /Groups?filter=displayName+Eq+{roleName}")
SCIMGroup isValidRole(@Param("roleName") String roleName);
}
这里getUser
调用工作正常。
但是isValidRole
不能正常工作,因为请求最终是这样发送的。
/Groups?filter=displayName+Eq+{roleName}
这里{roleName}
没有解析。
我错过了什么?感谢你的帮助,因为我在这一点上一无所知。
编辑:还有一个问题:有没有办法避免查询参数的自动url编码?
4条答案
按热度按时间quhf5bfb1#
最近(2019年。04)open feign issue和spring doc说:
OpenFeign @QueryMap注解支持将POJO用作GET参数Map。
Spring Cloud OpenFeign提供了一个等效的@SpringQueryMap annotation,用于将POJO或Map参数注解为2以来的查询参数map。1.0.
你可以这样使用它:
fcg9iug32#
使用
@QueryMap
工作正常URL:/API/v1/task/search?status=PENDING&size=20&page=0
内部客户端界面
m0rkklqb3#
它似乎是由一个已经打开的bug引起的-https://github.com/OpenFeign/feign/issues/424
就像在注解中一样,你可以定义你自己的
Param.Expander
,如下所示。ih99xse14#
下面的Spring fign客户端可以正常工作: