我创建了一个 spring-boot 项目并定义了一个带有 1 个端点的 REST 控制器/employers
@RestController
public class EmployerController {
@Autowired
private EmployerService employerService;
@GetMapping(path = "/employers")
public List<Employer> getEmployers() {
return (List<Employer>) employerService.getEmployers();
}
}
此外,我还创建了关联的 EmployerService、EmployerRepository 和 Employer 实体
当我将 Swagger/OpenAPI 添加到类路径,然后导航到 时http://localhost:8080/swagger-ui.html
,雇主实体有一个完整的 CRUD REST 定义,其中包括GET/POST/PUT/DELETE/PATCH
当我只定义了一个端点时,为什么要为雇主定义完整的 CRUD REST API GET /employers
?如果这是可配置的,是否可以禁用 REST API 的自动创建?
我的猜测是,您正在使用
spring-boot-starter-data-rest
我相信一旦创建@Entity
带注释的类和 CrudRepository 就会自动公开这些 crud 端点。那么,您的 build.gradle 或 pom.xml 中的 spring 依赖项是什么?我想您正在使用除通常的依赖项之外的其他
spring-boot-starter
东西spring-boot-starter-web
。无论如何,我不认为所有这些端点都来自
@GetMapping
您提供的代码片段中的端点。我们必须查看依赖项和其余设置才能确定。具体来说,实施延伸了什么EmployerRepository
?如果它是 aCrudRepository
并且您正在使用spring-boot-starter-data-rest
我相信这可以解释它。这是文档https://docs.spring.io/spring-data/rest/reference/repository-resources.html