Back to Publication
Backend Development
By Riazul Islam•
Summary: A bad API is like a bad user interface - people will avoid it. Here's how to design REST APIs that are intuitive, consistent, and a joy to work with.
## What Makes a Great API?
I've consumed hundreds of APIs and built dozens. The difference between a good API and a bad one is the same as the difference between a clear road sign and a confusing maze.
### The Golden Rules
**1. Use Nouns, Not Verbs**
```
✅ GET /users/123
❌ GET /getUser?id=123
```
**2. Plural Resource Names**
```
✅ GET /products
❌ GET /product
```
**3. Consistent Response Structure**
Every response should follow the same format:
```json
{
"success": true,
"data": { ... },
"meta": { "page": 1, "total": 50 }
}
```
### HTTP Status Codes That Matter
| Code | When to Use |
| 200 | Success |
| 201 | Resource created |
| 400 | Bad request (validation error) |
| 401 | Not authenticated |
| 403 | Not authorized |
| 404 | Not found |
| 422 | Unprocessable entity |
| 500 | Server error |
### Pagination Done Right
Always paginate list endpoints. Nobody wants to load 10,000 records:
```
GET /products?page=2&limit=20&sort=created_at&order=desc
```
### Versioning Your API
Start with versioning from day one:
```
/api/v1/users
/api/v2/users
```
### Error Messages That Help
Bad: `{ "error": "Invalid request" }`
Good: `{ "error": "Validation failed", "details": [{ "field": "email", "message": "Must be a valid email address" }] }`
A well-designed API is like a well-written book - it guides you naturally from start to finish.
