16 Facilitating API design decision-making
- Making design decisions confidently and consistently
- Researching solutions to API design questions
- Creating and evolving API design guidelines
Should we use an IBAN or an account number to identify a bank account? “Owner” or “user”? /accounts
or /account
? 403
or 404
? Boolean or string? How do we handle pagination? Designing an API involves countless decisions to fulfill user needs; be user-friendly, secure, efficient, and extensible; integrate contextual constraints; and not break consumers. Any decision can have significant consequences or introduce inconsistency. We may struggle to choose one option among many, have no clue how to solve a problem, or endlessly repeat the same discussions (sometimes with different conclusions). All this can make API design decision-making inefficient, inconsistent, and daunting.
16.1 Making design decisions confidently and consistently
16.1.1 Ensuring that it’s the right time to make a decision
16.1.2 Evaluating the scope of the decision
16.1.3 Deciding based on trusted past decisions
16.1.4 Deciding based on trusted external sources
16.1.5 Backing decisions with reasoning and sourced information
16.1.6 Explaining out loud
16.2 Researching solutions to API design questions
16.2.1 Where to research solutions to design questions
16.2.2 Searching and considering
16.2.3 Using an architectural decision record format
16.3 What are API design guidelines?
16.3.1 How design guidelines can help us
16.3.2 How API design guidelines relate to API governance
16.3.3 When do we need design guidelines?
16.4 What to put in user-friendly API design guidelines
16.4.1 Listing principles and rules
16.4.2 Providing actionable recipes
16.4.3 Providing ready-to-use artifacts and tools
16.4.4 Helping with the API design process
16.4.5 Adding implementation or architecture considerations
16.5 How to build API design guidelines