【发布时间】:2018-02-12 16:23:44
【问题描述】:
REST URL 允许通过 GET 访问包含枚举值作为查询参数的 url。如果我发送一个包含枚举变量名称的请求,它可以工作,但如果我使用字符串值,它不会。
示例:通过[...]cars/1?myEnum=CLIENT 访问有效,但[...]cars/1?myEnum=Client 无效。为什么?
@XmlType
@XmlEnum
@RequiredArgsConstructor
public enum MyEnum {
@XmlEnumValue("Client")
CLIENT("Client"),
@XmlEnumValue("Server")
SERVER("Server");
@Getter
private final String value;
public static MyEnum fromValue(String v) {
for (MyEnum c : MyEnum.values()) {
if (c.value.equals(v)) {
return c;
}
}
throw new IllegalArgumentException(v);
}
}
客户
@GET
@Path("cars/{myPathParam}")
@Produces(MediaType.TEXT_PLAIN)
public String getCars( //
@PathParam("myPathParam") final String myPathParam,
@QueryParam("myEnum") final MyEnum myEnum) {
return "someValue";
}
【问题讨论】: