chapter one

1 What is API design?

 

This chapter covers

  • Explaining what web APIs are
  • Realizing the importance of the design of web APIs
  • Clarifying who designs web APIs, which ones should be designed, and when
  • Comprehending the purpose of web API design
  • Overviewing the web API design process

What magic allows us to share pictures on social media, check bank balances, and hail cabs from our phones? How can developers quickly add telecom or payment services to their apps without expertise? What do basic web or mobile apps need to display data to users? Web application programming interfaces or APIs.

Web APIs are essential in our connected world as they serve as technical interfaces or products for various systems, organizations, and companies, from small startups to large corporations and government entities. API design is crucial for the success of any system, whether its APIs are visible or hidden. Poorly designed APIs can negatively impact developers' productivity, the system’s performance and integrity, end-users experience, and revenue.

Learning web API design requires a shared understanding of API and design concepts. This chapter covers the different aspects of web APIs, the importance of their design, and who designs them. It also provides an overview of the API design process and our approach that separates concerns to facilitate learning and execution.

1.1 What is a web API?

1.1.1 A remote web interface for applications

1.1.2 An interface to an implementation

1.1.3 An interface for others

1.2 Why does API design matter?

1.2.1 The design of any interface affects its users and creator

1.2.2 The design of any web API affects both consumers and provider

1.2.3 Taking care of design unleashes the power of APIs

1.3 Who designs web API?

1.3.1 Those with API design skills

1.3.2 Those with subject-matter knowledge

1.3.3 Those with software knowledge

1.3.4 Those with influence

1.4 When designing web APIs?

1.4.1 When creating any API

1.4.2 When making any modification

1.4.3 Before developing the implementation

1.5 What does designing web APIs mean?

1.5.1 Designing a versatile software product