Я новый член в RESTful API, я пишу метод GET:Написать RequestBody для RESTful метода
@RequestMapping(method = RequestMethod.GET, value = "/resourcerecords", produces={"application/json", "application/xml"})
public @ResponseBody Object getRRs(@RequestBody RRRequest requestBody){
// do something
}
RRRequest класс:
public class RRRequest{
private RRREC reqObject;
// getter and setter
}
Класс RRREC:
public class RRREC{
protected String infraAddr;
protected RRINFRATYPE infraType;
// getter and setter
}
А класс RRINFRATYPE:
public enum RRINFRATYPE {
V_6_ADDRESS("V6ADDRESS"),
OBJECT("OBJECT"),
ZONE("ZONE"),
V_4_REVERSEZONE("V4REVERSEZONE"),
V_6_REVERSEZONE("V6REVERSEZONE"),
NODE("NODE"),
ALL("ALL");
private final String value;
RRINFRATYPE(String v) {
value = v;
}
public String value() {
return value;
}
public static RRINFRATYPE fromValue(String v) {
for (RRINFRATYPE c: RRINFRATYPE.values()) {
if (c.value.equals(v)) {
return c;
}
}
throw new IllegalArgumentException(v);
}
}
Затем я послал запрос GET с RequestBody (я использую Fiddler Web Debugger)
"reqObject" : {
"infraAddr" : "192.168.88.4",
"infraType": {
"value": "OBJECT"
}
}
Я получаю 400 Bad Request. Если я перехожу на
"reqObject" : {
"infraAddr" : "192.168.88.4",
"InfraType": {
"value": "OBJECT"
}
}
Я могу отлаживать.
Однако, reqObject принимает только infraAddr
с "192.168.88.4", InfraType
- null.
Кто может объяснить мне, почему я должен использовать "InfraType"
вместо "infraType"
и как отправить значение для InfraType
.
Вы не должны, вы не имеете такого имущества. –
вы запрашиваете GET, у вас не может быть '@ RequestBody' –