API Design
Help me design a RESTful API:
Requirements
-
Resource: What entity is this for?
-
Operations: What actions are needed (CRUD, other)?
-
Relationships: How does it relate to other resources?
-
Users: Who will call this API?
Endpoint Design
For each operation, define:
URL Structure
-
Resource path (nouns, plural)
-
Parameter placement
-
Query parameters for filtering/sorting
HTTP Methods
-
GET for reads
-
POST for creates
-
PUT/PATCH for updates
-
DELETE for removes
Request Format
-
Request body schema
-
Required vs optional fields
-
Validation rules
Response Format
-
Success response schema
-
Pagination structure (if list)
-
Error response format
Status Codes
-
2xx for success
-
4xx for client errors
-
5xx for server errors
Documentation
Generate OpenAPI/Swagger spec including:
-
Endpoint descriptions
-
Parameter definitions
-
Schema definitions
-
Example requests/responses
Best Practices Check
Verify the design follows:
-
RESTful conventions
-
Consistent naming
-
Proper status codes
-
Security considerations