Video description
In Video Editions the narrator reads the book while the content, figures, code listings, diagrams, and text appear on the screen. Like an audiobook that you can also watch as a video.
A concept-rich book on API design patterns. Deeply engrossing and fun to read.
Satej Sahu, Honeywell
A collection of best practices and design standards for web and internal APIs.
In API Design Patterns you will find:
- 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.
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.
about the audience
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.
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
NARRATED BY SARAH DAWE
Table of Contents
Part 1. Introduction
Chapter 1. Introduction to APIs
Chapter 1. What are resource-oriented APIs?
Chapter 1. Expressive
Chapter 2. Introduction to API design patterns
Chapter 2. Why are API design patterns important?
Chapter 2. Anatomy of an API design pattern
Chapter 2. Case study: Twapi, a Twitter-like API
Chapter 2. Exporting data
Part 2. Design principles
Chapter 3. Naming
Chapter 3. Language, grammar, and syntax
Chapter 3. Syntax
Chapter 3. Case study: What happens when you choose bad names?
Chapter 4. Resource scope and hierarchy
Chapter 4. Types of relationships
Chapter 4. Choosing the right relationship
Chapter 4. References or in-line data
Chapter 4. Anti-patterns
Chapter 5. Data types and defaults
Chapter 5. Booleans
Chapter 5. Bounds
Chapter 5. Strings
Chapter 5. Enumerations
Chapter 5. Maps
Part 3. Fundamentals
Chapter 6. Resource identification
Chapter 6. Permanent
Chapter 6. What does a good identifier look like?
Chapter 6. Checksums
Chapter 6. Implementation
Chapter 6. Tomb-stoning
Chapter 6. What about UUIDs?
Chapter 7. Standard methods
Chapter 7. Idempotence and side effects
Chapter 7. List
Chapter 7. Update
Chapter 7. Replace
Chapter 8. Partial updates and retrievals
Chapter 8. Implementation
Chapter 8. Repeated fields
Chapter 8. Implicit field masks
Chapter 8. Trade-offs
Chapter 9. Custom methods
Chapter 9. Overview
Chapter 9. Resources vs. collections
Chapter 10. Long-running operations
Chapter 10. Implementation
Chapter 10. Resolution
Chapter 10. Error handling
Chapter 10. Pausing and resuming operations
Chapter 10. Persistence
Chapter 11. Rerunnable jobs
Chapter 11. The custom run method
Part 4. Resource relationships
Chapter 12. Singleton sub-resources
Chapter 12. Implementation
Chapter 12. Hierarchy
Chapter 13. Cross references
Chapter 13. Value vs. reference
Chapter 14. Association resources
Chapter 14. Uniqueness
Chapter 15. Add and remove custom methods
Chapter 16. Polymorphism
Chapter 16. Polymorphic structure
Chapter 16. Why not polymorphic methods?
Part 5. Collective operations
Chapter 17. Copy and move
Chapter 17. Identifiers
Chapter 17. Related resources
Chapter 17. Inherited metadata
Chapter 17. Atomicity
Chapter 18. Batch operations
Chapter 18. Ordering of results
Chapter 18. Batch Delete
Chapter 19. Criteria-based deletion
Chapter 19. Validation only by default
Chapter 20. Anonymous writes
Chapter 20. Consistency
Chapter 21. Pagination
Chapter 21. Page tokens
Chapter 21. Total count
Chapter 22. Filtering
Chapter 22. Structure
Chapter 22. Filter syntax and behavior - Part 1
Chapter 22. Filter syntax and behavior - Part 2
Chapter 22. Filter syntax and behavior - Part 3
Chapter 23. Importing and exporting
Chapter 23. Implementation
Chapter 23. Consistency
Chapter 23. Failures and retries
Chapter 23. Filtering and field masks
Part 6. Safety and security
Chapter 24. Versioning and compatibility
Chapter 24. Defining backward compatibility - Part 1
Chapter 24. Defining backward compatibility - Part 2
Chapter 24. Implementation
Chapter 24. Semantic versioning
Chapter 24. Trade-offs
Chapter 24. Happiness vs. ubiquity
Chapter 25. Soft deletion
Chapter 25. Modifying standard methods
Chapter 25. Expiration
Chapter 26. Request deduplication
Chapter 26. Response caching
Chapter 27. Request validation
Chapter 27. External dependencies
Chapter 28. Resource revisions
Chapter 28. Creating revisions
Chapter 28. Restoring a previous revision
Chapter 29. Request retrial
Chapter 29. Server-specified retry timing
Chapter 29. Retry After
Chapter 30. Request authentication
Chapter 30. Implementation
Chapter 30. Request fingerprinting
Chapter 30. Including the signature