- Home
- Skills
- Copyleftdev
- Sk1llz
- Fielding
fielding_skill
- Python
3
GitHub Stars
1
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill copyleftdev/sk1llz --skill fielding- SKILL.md4.0 KB
Overview
This skill helps you design network-based software architectures using Roy Fielding's REST principles. It emphasizes the web constraints that yield scalability, modifiability, and visibility: statelessness, cacheability, uniform interfaces, layered systems, and HATEOAS. Use it to critique API designs and produce architectures meant to endure for decades.
How this skill works
I inspect API designs and system architectures against Fielding's constraints, looking for violations like session state on the server, RPC tunnelling over HTTP, missing hypermedia, incorrect cache semantics, and improper status-code usage. I recommend concrete fixes: resource-first modeling, media-type versioning, explicit Cache-Control and Link headers, and embedding HATEOAS links so clients navigate via hypermedia. I also evaluate whether intermediaries (CDNs, proxies) can be inserted without breaking clients.
When to use it
- Designing public or long-lived web APIs that must remain stable and evolvable
- Performing architectural reviews for web services or microservices
- Migrating RPC-style APIs to resource-oriented RESTful designs
- Defining API contracts and media types for backward-compatible evolution
- Optimizing APIs for caching and intermediate layers
Best practices
- Model APIs as resources (nouns) and use standard HTTP verbs for actions
- Make every request self-descriptive; avoid server-side sessions and opaque client coupling
- Return explicit caching headers and use content negotiation with media types for versioning
- Provide HATEOAS links in responses so clients discover actions and URIs dynamically
- Use proper HTTP status codes and Link headers for documentation and relations
Example use cases
- Critique an existing API and get a prioritized list of REST constraint violations and fixes
- Design a new Level-3 REST API with media-type versioning and full hypermedia controls
- Audit system architecture for session-state leakage and recommend stateless alternatives
- Create response schemas that include _links and Cache-Control headers to enable caching proxies
- Convert RPC-style endpoints into resource-oriented endpoints and migration steps
FAQ
No. REST is an architectural style independent of any single protocol, though HTTP is its most common mapping and I focus on applying Fielding's constraints to HTTP APIs.
How do I version an API without breaking clients?
Prefer media-type versioning (Accept/Content-Type) and evolve representations while keeping entry points stable; use hypermedia so clients discover capabilities rather than hardcoding URLs.
Is HATEOAS required for all APIs?
For long-lived, evolvable public APIs, yes—HATEOAS decouples clients from URL structures. For internal or short-lived services, pragmatic trade-offs may apply.