Я довольно новичок в Java / Spring и пытаюсь настроить конечную точку API в существующем проекте. По сути, я скопировал некоторые другие конечные точки, которые в данный момент работают, но моя не проверяется при ударе, и, похоже, это происходит потому, что @RequestBody не заполняет объект, передаваемый в метод.
Я пытался удалить @NotNull
, но он все еще не работает. Это кажется странным, учитывая, что другие конечные точки работают с @NotNull
.
SampleRequest.java
import NotNull;
public class SampleRequest {
@NotNull
private String testString;
public void setTestString(String testString):
this.testString = testString;
public String getTestString():
return testString;
}
SampleRequestResource.java
import Valid
import NotNull
public class SampleRequestResource {
@NotNull;
@Valid;
private SampleRequest sample;
public SampleRequest getSample():
return sample;
public void setSampleRequest(SampleRequest sample):
this.sample = sample;
}
SampleController.java
import RequestBody
import RequestMapping
import RestController
@RestController
@RequestMapping("/foo")
public class SampleController(){
@RequestMapping("/{id}/bar", method = request.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<SampleResponseResource> stuff(
@Valid @RequestBody SampleRequestResource request) {
do stuff;
return response;
})
}
test.py
import requests, json
header = {"Content-Type":"application/json"}
data = {"testString": "foo"}
test = requests.post(url, header=header, json=data, verify=false)
Когда я запускаю test.py
, я ожидаю, что он вернется соответствующим образом, однако вместо этого я получаю ошибку проверки, потому что sample
равно null
от SampleRequestResource.java
Я предполагаю, что @RequestBody
должен проанализировать запрос, и когда он вызывает SampleRequestResource
, он переместит проанализированный запрос на SampleRequest
и подтвердит правильность, так как это то, что, кажется, происходит в остальной части API (как я уже сказал, я непосредственно скопировал / изменил другие рабочие конечные точки, чтобы создать мой.)