Qs: BE REST API
REST API Basics
Vocab
What Is The Essence Of A REST API ?
What Is Meant By "REST API Are Stateless" ?
What Is The Reason Of Making REST API Stateless ?
What are RESTful conventions ?
Example Users Resource (Fully RESTful)
Method
Endpoint
Meaning
Typical Implementation If Getting Many Resources From One Collection?
Typical Implementation If Getting One Resource From One Collection?
Typical Implementation If Creating A Resource In A Collection?
Typical Implementation If Entirely Updating One Resource From One Collection?
Typical Implementation If Partially Updating One Resource From One Collection?
Typical Implementation If Deleting One Resource From One Collection?
Which Methods Are Idempotent?
Method
Idempotent?
Safe?
Typical Use
What Are Some Additional Best Practices?
Difference Between Base URL vs Endpoint ?
What Is Meant By "PATCH Implementation Is Optional But Common" ?
Scenario
Full update
Partial update
Common?
“RESTful”?
What is meant by "The URL identifies the resource, not the action" ?
What is meant by "Standard HTTP methods have meaning" ?
Method
Meaning
Example
What Is Meant By "Uniform, predictable responses" ?
What Are The Categories Of HTTP Response Codes ?
Class
Meaning
Can You Match Common REST API Endpoints To HTTP Response Codes ?
REST API Endpoints To HTTP Response Codes ?Endpoint
Method
Typical Success
Typical Errors
Endpoint
Method
Success Codes
Common Error Codes
Can You Match HTTP Response Codes To Common REST API Endpoints?
HTTP Response Codes To Common REST API Endpoints?Code
Name
When Used (REST)
Architecture
Typical Architectures
Layered Architecture
Why Use a Layered Architecture ?
Layered Architecture: config/ directory
config/ directoryLayered Architecture: loaders/ directory
loaders/ directoryLayered Architecture: api/routes/ directory
api/routes/ directoryLayered Architecture: api/controllers/ directory
api/controllers/ directoryLayered Architecture: services/ directory
services/ directoryLayered Architecture: repositories/ directory
repositories/ directoryLayered Architecture: models/
models/Layered Architecture: middlewares/
middlewares/Domain-Driven (DDD) Architecture
Methodologies To Build REST APIs
Intro
1. Test-Driven Development (TDD)
2. API-First (Design-First) Development
3. Domain-Driven Design (DDD)
4. Iterative / Incremental API Evolution (Agile API development)
5. Consumer-Driven Contracts (CDC)
6. Behavior-Driven Development (BDD)
🔧 Best Practices (Method-Level Principles)
2. Consistency over cleverness
3. Design for backward compatibility
4. Make error handling explicit
5. Document continuously
6. Validate input at the boundary
7. Think about observability early
8. Security from the start (Shift-left security)
🌟 Famous Guiding Principles
1. Richardson Maturity Model (RMM)
2. REST Constraints (Roy Fielding)
3. 12-Factor App Principles (for service side)
4. OpenAPI Guidelines (e.g., Microsoft/Google)
📌 Summary: Methodologies for Building REST APIs
Category
Methodologies
More
Misc Best Practices
HTTPS
API Versioning
Use DTOs + Validation
Follow 12-Factor App Principles
Logging & Monitoring
Security Best Practices
Use CI/CD + Automated Tests
Use Frameworks When Helpful
Last updated