Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add jabrena/plinth --skill 302-frameworks-spring-boot-rest -a claude-code
Open on GitHub

What 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-code

2Manually: put the files in place

~/.claude/skills/302-frameworks-spring-boot-rest/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/302-frameworks-spring-boot-rest/

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

Similar skills

Everything for Backend and APIs →

From the same set40

131-java-testing-unit-testing Reviews and improves Java unit tests using JUnit 5, AssertJ, and Mockito. It catches testing anti-patterns and verifies boundary conditions. CX Codex +1 449installs 141-java-refactoring-with-modern-features A skill that moves legacy Java code onto modern language features: lambdas, Stream API, Optional, java.time. Useful when a codebase needs cleanup. CX Codex +1 427installs 125-java-concurrency A skill that has your coding agent review Java code for race conditions, lock contention and thread leaks, then apply modern java.util.concurrent fixes. CX Codex +1 402installs 122-java-type-design A skill that reviews and refactors Java code for type design: kills primitive obsession, builds type hierarchies, picks BigDecimal where precision matters. CX Codex +1 394installs 301-frameworks-spring-boot-core Enforces constructor injection and fail-fast config validation in Spring Boot 4.0.x codebases with strict Maven verification. CX Codex +1 390installs 111-java-maven-dependencies Adds code-quality Maven dependencies to your pom.xml: JSpecify, Error Prone with NullAway, VAVR, ArchUnit, JavaMoney. Asks what you need and installs only that. CX Codex +1 388installs 321-frameworks-spring-boot-testing-unit-tests A skill that steers your agent through Spring Boot unit testing: Mockito without a Spring context, slice tests for controllers, parameterized tests. Useful when @SpringBootTest has spread everywhere. CX Codex +1 387installs 112-java-maven-plugins A skill that adds and configures Maven plugins in pom.xml by asking one question at a time. Useful when you need quality checks, coverage or an image build. CX Codex +1 381installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor