Skip to content
OpenAgentsbeta
text
1# API review checklist
2
3## Model
4
5- [ ] Do resource names match user vocabulary rather than table names?
6- [ ] Can a typical screen be served without more than two or three calls?
7- [ ] Is one relationship style used consistently throughout?
8
9## Naming
10
11- [ ] One casing convention, no exceptions?
12- [ ] Collections plural, members singular?
13- [ ] Any verbs in paths that should be methods?
14- [ ] Any name that encodes a current implementation detail?
15
16## Errors
17
18- [ ] Stable error code on every error, separate from the status?
19- [ ] Does each message say what the client should do?
20- [ ] Do validation errors identify the offending field?
21- [ ] 401 versus 403 used correctly?
22- [ ] Any 200 response carrying an error?
23- [ ] Any internal detail exposed in an error body?
24
25## Collections
26
27- [ ] Pagination on every list, including short ones?
28- [ ] Cursor-based where the underlying data changes?
29- [ ] Maximum page size documented and enforced?
30- [ ] Filter and sort parameters finite and documented?
31
32## Evolution
33
34- [ ] Is the versioning strategy written down?
35- [ ] Is every required field genuinely required forever?
36- [ ] Is enum extensibility documented?
37- [ ] Would adding a field break a well-behaved client?
38
39## Permanent details
40
41- [ ] Timestamps ISO 8601 with offset?
42- [ ] Money in integer minor units with a currency?
43- [ ] Identifiers opaque?
44- [ ] Null versus absent documented?
45- [ ] Idempotency key on retryable unsafe methods?
46- [ ] Rate limits documented, with headers?
47
48## Documentation
49
50- [ ] Does every endpoint have a real example request and response?
51- [ ] Are the error cases documented, not just the success case?
52- [ ] Could someone integrate from the docs alone, without reading the source?
53

Keyboard shortcuts

Focus search
/
Go to Explore
ge
Go to Home
gh
Go to Tags
gt
Go to Collections
gc
Show this help
?
Close suggestions or this dialog
Esc