Useful Links
Computer Science
Software Engineering
API Design and Development
1. Fundamentals of Application Programming Interfaces (APIs)
2. API Architectural Styles and Paradigms
3. Core Principles of API Design
4. Data Formats and Serialization
5. API Security
6. API Development and Implementation
7. API Documentation
8. Testing APIs
9. API Lifecycle Management
10. Advanced Topics and Patterns
Core Principles of API Design
Resource-Oriented Design (for RESTful APIs)
Identifying Resources
Entity Modeling
Resource Relationships
Resource Hierarchies
URI (Uniform Resource Identifier) Design
Noun-based Naming Conventions
Hierarchical Structure
Use of Plurals
Clean and Predictable URLs
Avoiding Verbs in URIs
Query Parameters vs. Path Parameters
Resource Relationships
One-to-Many Relationships
Many-to-Many Relationships
Nested Resources
Resource Linking
HTTP Methods (Verbs)
GET (Read)
Safe Operations
Cacheable Responses
POST (Create)
Non-idempotent Operations
Resource Creation
PUT (Update/Replace)
Idempotent Updates
Complete Resource Replacement
PATCH (Partial Update)
Partial Resource Updates
Patch Document Formats
DELETE (Remove)
Resource Deletion
Soft vs. Hard Deletes
HEAD
Metadata Retrieval
Resource Existence Checks
OPTIONS
CORS Preflight
Method Discovery
Idempotent vs. Safe Methods
Definitions and Examples
Implications for API Consumers
Retry Strategies
HTTP Status Codes
Understanding Code Categories
1xx: Informational
2xx: Success
3xx: Redirection
4xx: Client Errors
5xx: Server Errors
Common Status Codes
200 OK
201 Created
202 Accepted
204 No Content
301 Moved Permanently
302 Found
304 Not Modified
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
405 Method Not Allowed
409 Conflict
410 Gone
422 Unprocessable Entity
429 Too Many Requests
500 Internal Server Error
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
Custom Status Codes
When to Use Custom Codes
Documentation Requirements
Request and Response Design
Request Headers and Body
Standard Headers
Authorization
Content-Type
Accept
User-Agent
Custom Headers
Naming Conventions
Security Considerations
Request Body Structure
JSON Payloads
Form Data
Multipart Data
Response Headers and Body
Standard Response Structure
Metadata in Headers
Content-Type
Content-Length
Cache-Control
Location
Response Body Design
Data Envelope Patterns
Metadata Inclusion
Consistent Data Structures
Field Naming Conventions
camelCase vs. snake_case
Consistency Across Endpoints
Data Types and Formats
Date and Time Formats
Numeric Precision
Boolean Representations
Null Value Handling
Omitting vs. Including Null Fields
Default Values
Designing for Extensibility
Versioning in Payloads
Optional and Required Fields
Schema Evolution Strategies
Filtering, Sorting, and Pagination
Query Parameter Design
Naming Conventions
Supporting Multiple Filters
Logical Operators
AND Operations
OR Operations
NOT Operations
Comparison Operators
Equality
Range Queries
Pattern Matching
Pagination Strategies
Offset-based Pagination
Limit and Offset Parameters
Performance Considerations
Cursor-based (Keyset) Pagination
Cursor Design
Stability Guarantees
Page-based Pagination
Page Size Limits
Total Count Considerations
Pagination Metadata
Total Count
Next/Previous Links
Page Information
Sorting Results
Sort Parameters
Single Field Sorting
Multi-Field Sorting
Sort Direction
Ascending vs. Descending
Default Sorting
Stable Sorting
Consistent Ordering
Tie-Breaking Rules
Error Handling and Reporting
Designing Clear Error Payloads
Error Object Structure
Error Code
Error Message
Error Details
Structured Error Responses
RFC 7807 Problem Details
Custom Error Formats
Including Error Codes and Messages
Standardized Error Codes
Human-Readable Messages
Internationalization Considerations
Validation Errors vs. System Errors
Differentiating Error Types
Providing Contextual Information
Field-Level Validation Errors
Error Recovery Guidance
Actionable Error Messages
Retry Instructions
Alternative Solutions
Previous
2. API Architectural Styles and Paradigms
Go to top
Next
4. Data Formats and Serialization