Spring Web - Class 级别 RequestMapping 不起作用

Spring Web - Class level RequestMapping does not work

我有一个简单的 RestController 可以用作 API。我需要每个端点方法 重用其路径的前缀,因此我将其写在 class 级别的 RequestMapping 注释中。 当我尝试对“/api/companies/all”执行 GET 时,它 returns 出现 404 错误:

@RestController
@RequestMapping("/api/companies")
public class CompanyApi {
  @GetMapping("/all")
  public ResponseEntity<String> getAllCompanies() {
    return ResponseEntity.ok("all companies");
  }
}

然而,当前缀像这样写在每个方法的注释中时它会起作用:

@RestController
public class CompanyApi {
  @GetMapping("/api/companies/all")
  public ResponseEntity<String> getAllCompanies() {
    return ResponseEntity.ok("all companies");
  }
}

我需要重新使用路径 "api/companies" 但出现错误。如何在 Spring 中解决此问题?

您不应该以 @GetMapping 值中的 / 开头,它会创建重复的 /,而是:

@GetMapping("all")