Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Analyzes API designs for REST conventions, identifies breaking changes, and scores consistency, documentation, security, usability, and performance.
Analyzes API designs for REST conventions, identifies breaking changes, and scores consistency, documentation, security, usability, and performance.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Tier: POWERFUL Category: Engineering / Architecture Maintainer: Claude Skills Team
The API Design Reviewer skill provides comprehensive analysis and review of API designs, focusing on REST conventions, best practices, and industry standards. This skill helps engineering teams build consistent, maintainable, and well-designed APIs through automated linting, breaking change detection, and design scorecards.
Resource Naming Conventions: Enforces kebab-case for resources, camelCase for fields HTTP Method Usage: Validates proper use of GET, POST, PUT, PATCH, DELETE URL Structure: Analyzes endpoint patterns for consistency and RESTful design Status Code Compliance: Ensures appropriate HTTP status codes are used Error Response Formats: Validates consistent error response structures Documentation Coverage: Checks for missing descriptions and documentation gaps
Endpoint Removal: Detects removed or deprecated endpoints Response Shape Changes: Identifies modifications to response structures Field Removal: Tracks removed or renamed fields in API responses Type Changes: Catches field type modifications that could break clients Required Field Additions: Flags new required fields that could break existing integrations Status Code Changes: Detects changes to expected status codes
Consistency Analysis (30%): Evaluates naming conventions, response patterns, and structural consistency Documentation Quality (20%): Assesses completeness and clarity of API documentation Security Implementation (20%): Reviews authentication, authorization, and security headers Usability Design (15%): Analyzes ease of use, discoverability, and developer experience Performance Patterns (15%): Evaluates caching, pagination, and efficiency patterns
GET: Retrieve resources (safe, idempotent) POST: Create new resources (not idempotent) PUT: Replace entire resources (idempotent) PATCH: Partial resource updates (not necessarily idempotent) DELETE: Remove resources (idempotent)
Collection Resources: /api/v1/users Individual Resources: /api/v1/users/123 Nested Resources: /api/v1/users/123/orders Actions: /api/v1/users/123/activate (POST) Filtering: /api/v1/users?status=active&role=admin
/api/v1/users /api/v2/users Pros: Clear, explicit, easy to route Cons: URL proliferation, caching complexity
GET /api/users Accept: application/vnd.api+json;version=1 Pros: Clean URLs, content negotiation Cons: Less visible, harder to test manually
GET /api/users Accept: application/vnd.myapi.v1+json Pros: RESTful, supports multiple representations Cons: Complex, harder to implement
/api/users?version=1 Pros: Simple to implement Cons: Not RESTful, can be ignored
{ "data": [...], "pagination": { "offset": 20, "limit": 10, "total": 150, "hasMore": true } }
{ "data": [...], "pagination": { "nextCursor": "eyJpZCI6MTIzfQ==", "hasMore": true } }
{ "data": [...], "pagination": { "page": 3, "pageSize": 10, "totalPages": 15, "totalItems": 150 } }
{ "error": { "code": "VALIDATION_ERROR", "message": "The request contains invalid parameters", "details": [ { "field": "email", "code": "INVALID_FORMAT", "message": "Email address is not valid" } ], "requestId": "req-123456", "timestamp": "2024-02-16T13:00:00Z" } }
400 Bad Request: Invalid request syntax or parameters 401 Unauthorized: Authentication required 403 Forbidden: Access denied (authenticated but not authorized) 404 Not Found: Resource not found 409 Conflict: Resource conflict (duplicate, version mismatch) 422 Unprocessable Entity: Valid syntax but semantic errors 429 Too Many Requests: Rate limit exceeded 500 Internal Server Error: Unexpected server error
Authorization: Bearer <token>
X-API-Key: <api-key> Authorization: Api-Key <api-key>
Authorization: Bearer <oauth-access-token>
{ "user": { "id": "123", "roles": ["admin", "editor"], "permissions": ["read:users", "write:orders"] } }
X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 999 X-RateLimit-Reset: 1640995200
{ "error": { "code": "RATE_LIMIT_EXCEEDED", "message": "Too many requests", "retryAfter": 3600 } }
{ "id": "123", "name": "John Doe", "email": "john@example.com", "_links": { "self": { "href": "/api/v1/users/123" }, "orders": { "href": "/api/v1/users/123/orders" }, "profile": { "href": "/api/v1/users/123/profile" }, "deactivate": { "href": "/api/v1/users/123/deactivate", "method": "POST" } } }
GET: Always safe and idempotent PUT: Should be idempotent (replace entire resource) DELETE: Should be idempotent (same result) PATCH: May or may not be idempotent
POST /api/v1/payments Idempotency-Key: 123e4567-e89b-12d3-a456-426614174000
Adding optional fields to requests Adding fields to responses Adding new endpoints Making required fields optional Adding new enum values (with graceful handling)
Removing fields from responses Making optional fields required Changing field types Removing endpoints Changing URL structures Modifying error response formats
API Information: Title, description, version Server Information: Base URLs and descriptions Path Definitions: All endpoints with methods Parameter Definitions: Query, path, header parameters Request/Response Schemas: Complete data models Security Definitions: Authentication schemes Error Responses: Standard error formats
Use consistent naming conventions Provide detailed descriptions for all components Include examples for complex objects Define reusable components and schemas Validate against OpenAPI specification
Cache-Control: public, max-age=3600 ETag: "123456789" Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT
Use appropriate HTTP methods Implement field selection (?fields=id,name,email) Support compression (gzip) Implement efficient pagination Use ETags for conditional requests
Avoid N+1 queries Implement batch operations Use async processing for heavy operations Support partial updates (PATCH)
Validate all input parameters Sanitize user data Use parameterized queries Implement request size limits
Use HTTPS everywhere Implement secure token storage Support token expiration and refresh Use strong authentication mechanisms
Implement principle of least privilege Use resource-based permissions Support fine-grained access control Audit access patterns
Analyzes API specifications for compliance with REST conventions and best practices. Features: OpenAPI/Swagger spec validation Naming convention checks HTTP method usage validation Error format consistency Documentation completeness analysis
Compares API specification versions to identify breaking changes. Features: Endpoint comparison Schema change detection Field removal/modification tracking Migration guide generation Impact severity assessment
Provides comprehensive scoring of API design quality. Features: Multi-dimensional scoring Detailed improvement recommendations Letter grade assessment (A-F) Benchmark comparisons Progress tracking
#!/bin/bash python engineering/api-design-reviewer/scripts/api_linter.py api/openapi.json if [ $? -ne 0 ]; then echo "API linting failed. Please fix the issues before committing." exit 1 fi
Consistency First: Maintain consistent naming, response formats, and patterns Documentation: Provide comprehensive, up-to-date API documentation Versioning: Plan for evolution with clear versioning strategies Error Handling: Implement consistent, informative error responses Security: Build security into every layer of the API Performance: Design for scale and efficiency from the start Backward Compatibility: Minimize breaking changes and provide migration paths Testing: Implement comprehensive testing including contract testing Monitoring: Add observability for API usage and performance Developer Experience: Prioritize ease of use and clear documentation
Verb-based URLs: Use nouns for resources, not actions Inconsistent Response Formats: Maintain standard response structures Over-nesting: Avoid deeply nested resource hierarchies Ignoring HTTP Status Codes: Use appropriate status codes for different scenarios Poor Error Messages: Provide actionable, specific error information Missing Pagination: Always paginate list endpoints No Versioning Strategy: Plan for API evolution from day one Exposing Internal Structure: Design APIs for external consumption, not internal convenience Missing Rate Limiting: Protect your API from abuse and overload Inadequate Testing: Test all aspects including error cases and edge conditions
The API Design Reviewer skill provides a comprehensive framework for building, reviewing, and maintaining high-quality REST APIs. By following these guidelines and using the provided tools, development teams can create APIs that are consistent, well-documented, secure, and maintainable. Regular use of the linting, breaking change detection, and scoring tools ensures continuous improvement and helps maintain API quality throughout the development lifecycle.
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.