如何在 spring 中使用 POST 请求实现搜索 API

How to implement search API using POST request in spring

我有一个场景,我应该使用 POST 请求(而不是预期的“GET”)搜索对象,并将搜索条件作为请求的主体,类似于以下内容:

{
      "criteria": {
            "value": "BMC_BaseElement",
            "identifier": "some value"
      }
}

现在假设我需要根据“值”和“标识符”进行搜索。 我是否需要创建相应的“标准”POJO 并让 spring 反序列化它,使用 getter 获取“值”和“标识符”然后进行搜索,或者通常如何完成?

您可以为请求主体创建一个 POJO 模型,或者在这种情况下,您可以这样做:

import com.fasterxml.jackson.databind.node.ObjectNode;

@PostMapping("/search")
public ResponseEntity<List<Object>> search(@RequestBody ObjectNode body) {
    String value = body.at("/criteria/value").textValue();
    String identifier = body.at("/criteria/identifier").textValue();
    return ResponseEntity.ok(List.of());
}