302-frameworks-spring-boot-rest — Claude Code skill for Spring Boot
A skill that guides an agent through designing and reviewing Spring Boot REST APIs: methods, status codes, DTOs, versioning, pagination, RFC 7807 errors.
npx skills add jabrena/plinth --skill 302-frameworks-spring-boot-rest -a claude-codeWhat 302-frameworks-spring-boot-rest does
The skill walks an agent through REST design rules for Spring Boot: HTTP method semantics, resource URI layout, status codes, lean DTO contracts. It also covers versioning by URI, header or media type, content negotiation with JSON as the default and vendor media types where they carry meaning, and ISO-8601 instants with offset in JSON contracts.
The workflow has four steps: read references/302-frameworks-spring-boot-rest.md, assess the project, apply the smallest safe set of changes, then verify. Before touching code the skill insists on a successful build with ./mvnw compile or mvn compile; afterwards it runs ./mvnw clean verify or mvn clean verify. If compilation fails, it stops right there. Fix the build first, or the agent will not modify anything. An ambiguous request also stops the skill so it can ask a clarifying question.
Coverage includes pagination, sorting and filtering with Page/Pageable and caps, Bean Validation at the boundary via @Valid/@Validated with a 400 on failure, idempotent POST creates with Idempotency-Key and 409 on collisions, ETag concurrency with If-Match/If-None-Match, HTTP caching, Deprecation and Sunset headers, API security, contract-first OpenAPI through OpenAPI Generator, @ControllerAdvice and problem details.
What it helps with
- reshape controllers and DTOs to follow REST rules without leaking fields into the contract
- add RFC 7807 error responses through a controller advice
- set up pagination and sorting with a cap on page size
- guard a create endpoint against duplicate POSTs with Idempotency-Key
- emit Deprecation and Sunset headers when retiring an API version
Example prompts for the agent
- Review my Spring Boot controllers against REST best practices and list the weak spots
- Add problem details error responses to this project and wire up @ControllerAdvice
- Rework the orders list endpoint to use Page/Pageable with a page size cap
How to install 302-frameworks-spring-boot-rest
1Skills CLI (Vercel)
npx skills add jabrena/plinth --skill 302-frameworks-spring-boot-rest -a claude-code2Manually: put the files in place
~/.claude/skills/302-frameworks-spring-boot-rest/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/302-frameworks-spring-boot-rest/
1Skills CLI (Vercel)
npx skills add jabrena/plinth --skill 302-frameworks-spring-boot-rest -a codex2Manually: put the files in place
.agents/skills/302-frameworks-spring-boot-rest/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add jabrena/plinth --skill 302-frameworks-spring-boot-rest -a cursor2Manually: put the files in place
.cursor/skills/302-frameworks-spring-boot-rest/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install jabrena/plinth 302-frameworks-spring-boot-rest2Manually: put the files in place
.github/skills/302-frameworks-spring-boot-rest/SKILL.md1Skills CLI (Vercel)
npx skills add jabrena/plinth --skill 302-frameworks-spring-boot-rest -a gemini-cli2Platform CLI
gemini skills install https://github.com/jabrena/plinth --path skills/302-frameworks-spring-boot-restManually: put the files in place
.devin/skills/302-frameworks-spring-boot-rest/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add jabrena/plinth --skill 302-frameworks-spring-boot-rest -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about 302-frameworks-spring-boot-rest
How do I install 302-frameworks-spring-boot-rest in Claude?
Run npx skills add jabrena/plinth --skill 302-frameworks-spring-boot-rest -a claude-code. The skill lands in ~/.claude/skills/302-frameworks-spring-boot-rest/SKILL.md.
What does 302-frameworks-spring-boot-rest do?
It helps an agent design, review and improve Spring Boot REST APIs: methods and URIs, status codes, DTOs, versioning, pagination, validation, idempotency, caching and error handling.
What does the skill need to run?
A Spring Boot project built with Maven. It requires a passing build via ./mvnw compile or mvn compile before changes, and runs ./mvnw clean verify or mvn clean verify afterwards.
Source text
SKILL.md · Apache-2.0
--- name: 302-frameworks-spring-boot-rest description: Use when you need to design, review, or improve REST APIs with Spring Boot — including HTTP methods, resource URIs, status codes, DTOs, versioning, deprecation and sunset headers, content negotiation (JSON and vendor media types), ISO-8601 instants in DTOs, pagination/sorting/filtering, Bean Validation at the boundary, idempotency, ETag concurrency, HTTP caching, error handling, security, contract-first OpenAPI (OpenAPI Generator), controller advice, and problem details for errors. This should trigger for requests such as Review Java code for Spring Boot REST API; Apply best practices for Spring Boot REST API in Java code; Design Spring Boot REST controllers and DTOs; Add Problem Details error responses in Spring Boot REST; Improve pagination validation or idempotency in Spring APIs. Part of Plinth Toolkit license: Apache-2.0 metadata: author: Juan Antonio Breña Moral version: 0.19.0 --- # Java REST API Design Principles Apply REST API design principles for Spring Boot applications. **What is covered in this Skill?** - HTTP methods (GET, POST, PUT, PATCH, DELETE) — semantic consistency - Resource URI design - HTTP status codes - Request/response DTOs with lean contracts - API versioning (URI, header, or media type — applied consistently) - Bean Validation at the boundary (@Valid/@Validated on controller inputs, 400 on failure) - Pagination, sorting, and filtering (Page/Pageable with caps) - ISO-8601 instants with offset (OffsetDateTime, Instant) in JSON contracts - Content negotiation (JSON default; vendor media types when meaningful) - Idempotency-Key support for POST creates; 409 Conflict for collisions - ETag concurrency with If-Match/If-None-Match; 412 Precondition Failed / 304 Not Modified - HTTP caching discipline (Cache-Control, ETag, Last-Modified) - Deprecation and sunset headers (Deprecation, Sunset, Link rel="successor-version)" - Error handling - API security (TLS, authentication, authorization, input validation) - API contract: OpenAPI file as source of truth for API-first (OpenAPI Generator) - Controller advice and problem details (RFC 7807) **Scope:** Apply recommendations based on the reference rules and good/bad code examples. ## Constraints Before applying any REST API changes, ensure the project compiles. If compilation fails, stop immediately. After applying improvements, run full verification. - **MANDATORY**: Run `./mvnw compile` or `mvn compile` before applying any change - **SAFETY**: If compilation fails, stop immediately - **VERIFY**: Run `./mvnw clean verify` or `mvn clean verify` after applying improvements - **BEFORE APPLYING**: Read the reference for detailed rules and good/bad patterns - **EDGE CASE**: If request scope is ambiguous, stop and ask a clarifying question before applying changes - **EDGE CASE**: If required inputs, files, or tooling are missing, report what is missing and ask whether to proceed with setup guidance ## When to use this skill - Review Java code for Spring Boot REST API - Apply best practices for Spring Boot REST API in Java code - Design Spring Boot REST controllers and DTOs - Add Problem Details error responses in Spring Boot REST - Improve pagination validation or idempotency in Spring APIs ## Workflow 1. **Read reference and assess project context** Read `references/302-frameworks-spring-boot-rest.md` and inspect the current project setup before proposing changes. 2. **Gather scope and decide target improvements** Identify requested outcomes, constraints, and the minimum safe set of changes to apply. 3. **Apply framework-aligned changes** Implement or refactor configuration/code following the reference patterns and project conventions. 4. **Run verification and report results** Execute appropriate build/tests and summarize what changed, what was verified, and any follow-up actions. ## Reference For detailed guidance, examples, and constraints, see [references/302-frameworks-spring-boot-rest.md](references/302-frameworks-spring-boot-rest.md).
© Juan Antonio Breña Moral · Apache-2.0 · jabrena/plinth