API Design Patterns

Jj Geewax

Language: English

Publisher: Manning

Published: Jul 20, 2021

Description:

API Design Patterns lays out a set of design principles for building internal and public-facing APIs.

Summary
A collection of best practices and design standards for web and internal APIs.

In API Design Patterns you will learn:

  • Guiding principles for API patterns
  • Fundamentals of resource layout and naming
  • Handling data types for any programming language
  • Standard methods that ensure predictability
  • Field masks for targeted partial updates
  • Authentication and validation methods for secure APIs
  • Collective operations for moving, managing, and deleting data
  • Advanced patterns for special interactions and data transformations

API Design Patterns reveals best practices for building stable, user-friendly APIs. These design patterns can be applied to solve common API problems and flexibly altered to fit your specific needs. Hands-on examples and relevant use-cases illustrate patterns for API fundamentals, advanced functionalities, and even uncommon scenarios.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

About the technology
APIs are contracts that define how applications, services, and components communicate. API design patterns provide a shared set of best practices, specifications and standards that ensure APIs are reliable and simple for other developers to use. This book collects and explains the most important patterns from both the API design community and the experts at Google.

About the book
API Design Patterns lays out a set of design principles for building internal and public-facing APIs. Google API expert JJ Geewax presents patterns that ensure your APIs are consistent, scalable, and flexible. You'll improve the design of the most common APIs, plus discover techniques for tricky edge cases. Precise illustrations, relevant examples, and detailed scenarios make every pattern clear and easy to understand.

What's inside

  • Guiding principles for API patterns
  • Fundamentals of resource layout and naming
  • Advanced patterns for special interactions and data transformations
  • A detailed case-study on building an API and adding features

About the reader
For developers building web and internal APIs in any language.

About the author
JJ Geewax is a software engineer at Google, focusing on Google Cloud Platform, API design, and real-time payment systems. He is also the author of Manning's Google Cloud Platform in Action.

Table of Contents

PART 1: INTRODUCTION

  • 1 Introduction to APIs
  • 2 Introduction to API design patterns

PART 2: DESIGN PRINCIPLES

  • 3 Naming
  • 4 Resource scope and hierarchy
  • 5 Data types and defaults

PART 3: FUNDAMENTALS

  • 6 Resource identification
  • 7 Standard methods
  • 8 Partial updates and retrievals
  • 9 Custom methods
  • 10 Long-running operations
  • 11 Rerunnable jobs

PART 4: RESOURCE RELATIONSHIPS

  • 12 Singleton sub-resources
  • 13 Cross references
  • 14 Association resources
  • 15 Add and remove custom methods
  • 16 Polymorphism

PART 5: COLLECTIVE OPERATIONS

  • 17 Copy and move
  • 18 Batch operations
  • 19 Criteria-based deletion
  • 20 Anonymous writes
  • 21 Pagination
  • 22 Filtering
  • 23 Importing and exporting

PART 6: SAFETY AND SECURITY

  • 24 Versioning and compatibility
  • 25 Soft deletion
  • 26 Request deduplication
  • 27 Request validation
  • 28 Resource revisions
  • 29 Request retrial
  • 30 Request authentication

Review

"A concept-rich book on API design patterns. Deeply engrossing and fun to read." --Satej Sahu, Honeywell
"Excellent companion for API design!" -- Ruben Vandeginste, PeopleWare
"The right way to build APIs." -- Jorge Ezequiel Bo, Naranjax
"If API design or refactoring is in your future, this book is a great investment!" -- Yul Williams, U.S. Department of Defense
"Makes the complex puzzle of designing APIs into a delightful learning experience." -- Akshat Paul, McKinsey & Company

About the Author

JJ Geewax is a software engineer at Google, focusing on Google Cloud Platform, API design, and real-time payment systems. He is also the author of Manning’s Google Cloud Platform in Action.