Agent Skills: Spring REST Controller Scaffold

Generate a Spring REST controller for a named entity with CRUD endpoints, validation, OpenAPI documentation, and integration tests. Invoke as /spring-controller <Entity>.

UncategorizedID: kousen/claude-code-training/spring-controller

Install this agent skill to your local

pnpm dlx add-skill https://github.com/kousen/claude-code-training/tree/HEAD/skills/spring-controller

Skill Files

Browse the full folder contents for spring-controller.

Download Skill

Loading file tree…

skills/spring-controller/SKILL.md

Skill Metadata

Name
spring-controller
Description
Generate a Spring REST controller for a named entity with CRUD endpoints, validation, OpenAPI documentation, and integration tests. Invoke as /spring-controller <Entity>.

Spring REST Controller Scaffold

Generate a $ARGUMENTSController with the following:

  • @RestController and @RequestMapping("/api/$ARGUMENTS") (lowercased plural)
  • CRUD endpoints with proper HTTP verbs and status codes:
    • GET /api/$ARGUMENTS — list (with pagination params)
    • GET /api/$ARGUMENTS/{id} — fetch one (404 on miss)
    • POST /api/$ARGUMENTS — create (201 + Location header)
    • PUT /api/$ARGUMENTS/{id} — update (200 or 404)
    • DELETE /api/$ARGUMENTS/{id} — delete (204)
  • Request and response DTOs for $ARGUMENTS (don't expose the JPA entity directly)
  • @Valid + Jakarta validation annotations on the request DTOs
  • OpenAPI annotations (@Operation, @ApiResponses)
  • Integration tests using @SpringBootTest + MockMvc covering happy path, validation failure, and 404

Conventions

  • Constructor injection (no field @Autowired)
  • ResponseEntity return types so HTTP status is explicit
  • Use the project's existing exception handler if @ControllerAdvice is present
  • Match the package layout of existing controllers

Usage: /spring-controller UserUserController, UserRequest, UserResponse, UserControllerIntegrationTest