有没有办法可以简化这个:
@PostMapping(value = "create", consumes = "application/json", produces = "application/json")
public Response create(@RequestBody ObjectNode json) {
return new Response(json.get("name").asText(), 200);
}
主要是我想知道是否有可能对消费和消费进行注释。产生。我的应用程序将是一个API服务,因此所有请求/响应都将基于JSON。我不想在每个控制器方法上保留它。
不太重要:
我知道如果这是一种创建注释的方法,我可以传递@RequestParam Comment comment
,但如果我想从同一方法同时创建注释和其他内容,该怎么办呢?
是否比使用ObjectNode和json更清晰,而不是json.get().as...
答案 0 :(得分:1)
事实证明,您可以使用@ResponseBody
和@RequestBody
注释您的方法/控制器,以获得相同的结果。
答案 1 :(得分:-1)
MyServer.class
@POST
public Response save(String data) {
return Response.status(Response.Status.ACCEPTED).entity(repository.save(data)).build();
}
现在它将作为发布请求转到服务器。
如果没有ID,请添加此代码。
ResourceConverter converter = new ... converter.disableDeserialisationOption(DeserializationFeature.REQUIRE_RESOURCE_ID);
这允许您删除id限制。 替代方案是您应该使用当前快照版本
以下是存储库类的保存方法
public String save(String data) {
Server myServer= converter.readObject(data.getBytes(), Server.class);
Key<Server> savedMyServer = datastore.save(myServer);
Server usingKey = datastore.getByKey(Server.class, savedMyServer);
try {
return new String(converter.writeObject(usingKey), StandardCharsets.UTF_8);
} catch (JsonProcessingException | IllegalAccessException e) {
LOGGER.debug(e.getMessage());
}
return null;
}