{"id":"00b29e42-7c3c-450d-97ff-b2953f805be3","shortId":"gyjLu5","kind":"skill","title":"402-frameworks-quarkus-rest","tagline":"Use when you need to design, review, or improve REST APIs with Quarkus REST (Jakarta REST) — including resource classes, HTTP methods, status codes, request/response DTOs, Bean Validation, exception mappers, optional runtime OpenAPI exposure (SmallRye), contract-first generation ","description":"# Quarkus REST API Guidelines\n\nApply REST API design principles on Quarkus using Jakarta REST (JAX-RS).\n\n**What is covered in this Skill?**\n\n- Resource classes, @Path, HTTP method mapping, and resource URI design\n- Status codes, Location headers, and Response building\n- DTOs and Bean Validation at the boundary; ISO-8601 for date/time fields\n- ExceptionMapper for consistent error JSON (RFC 7807 Problem Details)\n- API versioning strategies (URI path, Accept header)\n- Idempotency with Idempotency-Key header\n- Optimistic concurrency: ETag, If-Match, If-None-Match\n- HTTP caching with Cache-Control headers\n- API deprecation: Sunset and Deprecation headers\n- Pagination, sorting, and filtering query parameters\n- Optional `/openapi` via SmallRye; API-first contract maintained in `openapi.yaml` (codegen)\n- Reactive vs blocking considerations; @RunOnVirtualThread\n- Security integration at the filter layer\n\n**Scope:** Apply recommendations based on the reference rules and good/bad code examples.\n\n## Constraints\n\nBefore applying REST changes, ensure the project compiles. After applying improvements, run full verification.\n\n- **MANDATORY**: Run `./mvnw compile` or `mvn compile` before applying any change\n- **PREREQUISITE**: Project must compile before applying REST API improvements\n- **SAFETY**: If compilation fails, stop immediately\n- **BLOCKING CONDITION**: Compilation errors must be resolved by the user before proceeding\n- **VERIFY**: Run `./mvnw clean verify` or `mvn clean verify` after applying improvements\n- **BEFORE APPLYING**: Read the reference for detailed rules and examples\n\n## When to use this skill\n\n- Review or improve JAX-RS resources in a Quarkus project\n- Design HTTP APIs with validation and error handling on Quarkus\n- Add API versioning, idempotency, ETag concurrency, or deprecation headers\n- Implement pagination, sorting, or RFC 7807 Problem Details error responses\n\n## Workflow\n\n1. **Read reference and assess project context**\n\nRead `references/402-frameworks-quarkus-rest.md` and inspect the current project setup before proposing changes.\n\n2. **Gather scope and decide target improvements**\n\nIdentify requested outcomes, constraints, and the minimum safe set of changes to apply.\n\n3. **Apply framework-aligned changes**\n\nImplement or refactor configuration/code following the reference patterns and project conventions.\n\n4. **Run verification and report results**\n\nExecute appropriate build/tests and summarize what changed, what was verified, and any follow-up actions.\n\n## Reference\n\nFor detailed guidance, examples, and constraints, see [references/402-frameworks-quarkus-rest.md](references/402-frameworks-quarkus-rest.md).","tags":["402","frameworks","quarkus","rest","cursor","rules","java","jabrena","agent-skills","ai-skills","claude","claude-code"],"capabilities":["skill","source-jabrena","skill-402-frameworks-quarkus-rest","topic-agent-skills","topic-ai-skills","topic-claude","topic-claude-code","topic-claude-code-skills","topic-claude-code-subagents","topic-claude-skills","topic-cursor-agent","topic-cursor-ai","topic-cursor-skills","topic-cursorai","topic-github-copilot"],"categories":["cursor-rules-java"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/jabrena/cursor-rules-java/402-frameworks-quarkus-rest","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add jabrena/cursor-rules-java","source_repo":"https://github.com/jabrena/cursor-rules-java","install_from":"skills.sh"}},"qualityScore":"0.631","qualityRationale":"deterministic score 0.63 from registry signals: · indexed on github topic:agent-skills · 362 github stars · SKILL.md body (2,667 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-26T12:53:37.655Z","embedding":null,"createdAt":"2026-04-18T22:02:18.731Z","updatedAt":"2026-04-26T12:53:37.655Z","lastSeenAt":"2026-04-26T12:53:37.655Z","tsv":"'-8601':92 '/mvnw':199,237 '/openapi':148 '1':303 '2':321 '3':341 '4':358 '402':1 '7807':102,297 'accept':110 'action':379 'add':283 'align':345 'api':16,46,50,105,135,152,215,275,284 'api-first':151 'appli':48,171,184,192,205,213,245,248,340,342 'appropri':365 'assess':307 'base':173 'bean':31,86 'block':161,223 'boundari':90 'build':83 'build/tests':366 'cach':129,132 'cache-control':131 'chang':186,207,320,338,346,370 'class':24,68 'clean':238,242 'code':28,78,180 'codegen':158 'compil':190,200,203,211,219,225 'concurr':119,288 'condit':224 'configuration/code':350 'consider':162 'consist':98 'constraint':182,331,386 'context':309 'contract':41,154 'contract-first':40 'control':133 'convent':357 'cover':63 'current':315 'date/time':94 'decid':325 'deprec':136,139,290 'design':11,51,76,273 'detail':104,253,299,382 'dtos':30,84 'ensur':187 'error':99,226,279,300 'etag':120,287 'exampl':181,256,384 'except':33 'exceptionmapp':96 'execut':364 'exposur':38 'fail':220 'field':95 'filter':144,168 'first':42,153 'follow':351,377 'follow-up':376 'framework':3,344 'framework-align':343 'frameworks-quarkus-rest':2 'full':195 'gather':322 'generat':43 'good/bad':179 'guidanc':383 'guidelin':47 'handl':280 'header':80,111,117,134,140,291 'http':25,70,128,274 'idempot':112,115,286 'idempotency-key':114 'identifi':328 'if-match':121 'if-none-match':124 'immedi':222 'implement':292,347 'improv':14,193,216,246,264,327 'includ':22 'inspect':313 'integr':165 'iso':91 'jakarta':20,56 'jax':59,266 'jax-r':58,265 'json':100 'key':116 'layer':169 'locat':79 'maintain':155 'mandatori':197 'map':72 'mapper':34 'match':123,127 'method':26,71 'minimum':334 'must':210,227 'mvn':202,241 'need':9 'none':126 'openapi':37 'openapi.yaml':157 'optimist':118 'option':35,147 'outcom':330 'pagin':141,293 'paramet':146 'path':69,109 'pattern':354 'prerequisit':208 'principl':52 'problem':103,298 'proceed':234 'project':189,209,272,308,316,356 'propos':319 'quarkus':4,18,44,54,271,282 'queri':145 'reactiv':159 'read':249,304,310 'recommend':172 'refactor':349 'refer':176,251,305,353,380 'references/402-frameworks-quarkus-rest.md':311,388,389 'report':362 'request':329 'request/response':29 'resolv':229 'resourc':23,67,74,268 'respons':82,301 'rest':5,15,19,21,45,49,57,185,214 'result':363 'review':12,262 'rfc':101,296 'rs':60,267 'rule':177,254 'run':194,198,236,359 'runonvirtualthread':163 'runtim':36 'safe':335 'safeti':217 'scope':170,323 'secur':164 'see':387 'set':336 'setup':317 'skill':66,261 'skill-402-frameworks-quarkus-rest' 'smallry':39,150 'sort':142,294 'source-jabrena' 'status':27,77 'stop':221 'strategi':107 'summar':368 'sunset':137 'target':326 'topic-agent-skills' 'topic-ai-skills' 'topic-claude' 'topic-claude-code' 'topic-claude-code-skills' 'topic-claude-code-subagents' 'topic-claude-skills' 'topic-cursor-agent' 'topic-cursor-ai' 'topic-cursor-skills' 'topic-cursorai' 'topic-github-copilot' 'uri':75,108 'use':6,55,259 'user':232 'valid':32,87,277 'verif':196,360 'verifi':235,239,243,373 'version':106,285 'via':149 'vs':160 'workflow':302","prices":[{"id":"5b310def-c51c-4a45-abc8-e1f4e0ba39c3","listingId":"00b29e42-7c3c-450d-97ff-b2953f805be3","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"jabrena","category":"cursor-rules-java","install_from":"skills.sh"},"createdAt":"2026-04-18T22:02:18.731Z"}],"sources":[{"listingId":"00b29e42-7c3c-450d-97ff-b2953f805be3","source":"github","sourceId":"jabrena/cursor-rules-java/402-frameworks-quarkus-rest","sourceUrl":"https://github.com/jabrena/cursor-rules-java/tree/main/skills/402-frameworks-quarkus-rest","isPrimary":false,"firstSeenAt":"2026-04-18T22:02:18.731Z","lastSeenAt":"2026-04-26T12:53:37.655Z"}],"details":{"listingId":"00b29e42-7c3c-450d-97ff-b2953f805be3","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"jabrena","slug":"402-frameworks-quarkus-rest","github":{"repo":"jabrena/cursor-rules-java","stars":362,"topics":["agent-skills","ai-skills","claude","claude-code","claude-code-skills","claude-code-subagents","claude-skills","cursor-agent","cursor-ai","cursor-skills","cursorai","github-copilot","intellij-idea","java","prompting","system-prompts"],"license":"apache-2.0","html_url":"https://github.com/jabrena/cursor-rules-java","pushed_at":"2026-04-26T12:50:01Z","description":"A curated and opinionated collection of Skills and Agents to be used in modern SDLC workflows for Java Enterprise development with your favorite AI Agent harness.","skill_md_sha":"b6e5921d222d5c7cd4f8889510ba1ad7c0d940b5","skill_md_path":"skills/402-frameworks-quarkus-rest/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/jabrena/cursor-rules-java/tree/main/skills/402-frameworks-quarkus-rest"},"layout":"multi","source":"github","category":"cursor-rules-java","frontmatter":{"name":"402-frameworks-quarkus-rest","license":"Apache-2.0","description":"Use when you need to design, review, or improve REST APIs with Quarkus REST (Jakarta REST) — including resource classes, HTTP methods, status codes, request/response DTOs, Bean Validation, exception mappers, optional runtime OpenAPI exposure (SmallRye), contract-first generation from OpenAPI, content negotiation, pagination, sorting and filtering, API versioning, idempotency (Idempotency-Key), optimistic concurrency (ETag / If-Match), HTTP caching (Cache-Control), API deprecation (Sunset / Deprecation headers), RFC 7807 Problem Details, ISO-8601 for time in contracts, and security-aware boundaries. This should trigger for requests such as Review or improve JAX-RS resources in a Quarkus project; Design HTTP APIs with validation and error handling on Quarkus; Add API versioning, idempotency, ETag concurrency, or deprecation headers; Implement pagination, sorting, or RFC 7807 Problem Details error responses. Part of cursor-rules-java project"},"skills_sh_url":"https://skills.sh/jabrena/cursor-rules-java/402-frameworks-quarkus-rest"},"updatedAt":"2026-04-26T12:53:37.655Z"}}