Designing Web APIs
Building APIS That Developers Love
Paperback Engels 2018 1e druk 9781492026921Samenvatting
Using a web API to provide services to application developers is one of the more satisfying endeavors that software engineers undertake. But building a popular API with a thriving developer ecosystem is also one of the most challenging. With this practical guide, developers, architects, and tech leads will learn how to navigate complex decisions for designing, scaling, marketing, and evolving interoperable APIs.
Authors Brenda Jin, Saurabh Sahni, and Amir Shevat explain API design theory and provide hands-on exercises for building your web API and managing its operation in production. You’ll also learn how to build and maintain a following of app developers. This book includes expert advice, worksheets, checklists, and case studies from companies including Slack, Stripe, Facebook, Microsoft, Cloudinary, Oracle, and GitHub.
- Get an overview of request-response and event-driven API design paradigms
- Learn best practices for designing an API that meets the needs of your users
- Use a template to create an API design process
- Scale your web API to support a growing number of API calls and use cases
- Regularly adapt the API to reflect changes to your product or business
- Provide developer resources that include API documentation, samples, and tools
Specificaties
Lezersrecensies
Inhoudsopgave
How This Book Is Organized
Conventions Used in This Book
O’Reilly Safari
How to Contact Us
Acknowledgments
1. What’s an API?
Why Do We Need APIs?
Who Are Our Users?
The Business Case for APIs
APIs for Internal Developers First, External Developers Second
APIs for External Developers First, Internal Developers Second
APIs as the Product
What Makes an API Great?
Closing Thoughts
2. API Paradigms
Request–Response APIs
Representational State Transfer
Remote Procedure Call
GraphQL
Event-Driven APIs
WebHooks
WebSockets
HTTP Streaming
Closing Thoughts
3. API Security
Authentication and Authorization
OAuth
Token Generation
Scopes
Token and Scope Validation
Token Expiry and Refresh Tokens
Listing and Revoking Authorizations
OAuth Best Practices
WebHooks Security
Verification Tokens
Request Signing and WebHook Signatures
Mutual Transport Layer Security
Thin Payloads and API Retrieval
WebHook Security Best Practices
Closing Thoughts
4. Design Best Practices
Designing for Real-Life Use Cases
Designing for a Great Developer Experience
Make It Fast and Easy to Get Started
Work Toward Consistency
Make Troubleshooting Easy
Make Your API Extensible
Closing Thoughts
5. Design in Practice
Scenario 1
Define Business Objectives
Outline Key User Stories
Select Technology Architecture
Write an API Specification
Scenario 2
Define the Problem
Outline Key User Stories
Select Technology Architecture
Write an API Specification
Validate Your Decisions
Closing Thoughts
6. Scaling APIs
Scaling Throughput
Finding the Bottlenecks
Adding Computing Resources
Database Indexes
Caching
Doing Expensive Operations Asynchronously
Scaling Throughput Best Practices
Evolving Your API Design
Introducing New Data Access Patterns
Adding New API Methods
Supporting Bulk Endpoints
Adding New Options to Filter Results
Evolving API Design Best Practices
Paginating APIs
Offset-Based Pagination
Cursor-Based Pagination
Pagination Best Practices
Rate-Limiting APIs
What Is Rate-Limiting?
Implementation Strategies
Rate Limits and Developers
Rate-Limiting Best Practices
Developer SDKs
Rate-Limiting Support
Pagination Support
Using gzip
Caching Frequently Used Data
Error Handling and Exponential Back-Off
SDK Best Practices
Closing Thoughts
7. Managing Change
Toward Consistency
Automated Testing
API description languages
Backward Compatibility
Planning for and Communicating Change
Communication Plan
Adding
Removing
Versioning
Closing Thoughts
8. Building a Developer Ecosystem Strategy
Developers, Developers, Developers
The Hobbyist
The Hacker
The Business-Focused, Tech-Savvy User
The Professional Developer
And Many More
Building a Developer Strategy
Developer Segmentation
Distilling the Value Proposition
Defining Your Developer Funnel
Mapping the Current and Future State
Outlining Your Tactics
Deriving Measurements
Closing Thoughts
9. Developer Resources
API Documentation
Getting Started
API Reference Documentation
Tutorials
Frequently Asked Questions
Landing Page
Changelog
Terms of Service
Samples and Snippets
Code Samples
Snippets
Software Development Kits and Frameworks
SDKs
Frameworks
Development Tools
Debugging and Troubleshooting
Sandboxes and API Testers
Rich Media
Videos
Office Hours
Webinars and Online Training
Community Contribution
Closing Thoughts
10. Developer Programs
Defining Your Developer Programs
Breadth and Depth Analysis
Deep Developer Programs
Top Partner Program
Beta Program
Design Sprints
Broad Developer Programs
Meetups and Community Events
Hackathons
Speaking at Events and Event Sponsorships
Train-the-Trainer and Ambassador Programs
Online Videos and Streaming
Support, Forums, and Stack Overflow
Credit Program
Measuring Developer Programs
Closing Thoughts
11. Conclusion
A. API Design Worksheets
Define Business Objectives
The Problem
The Impact
Key User Stories
Technology Architecture
API Specification Template
Title
Authors
Problem
Solution
Implementation
Authentication
Other Things We Considered
Inputs, Outputs (REST, RPC)
Events, Payloads (Event-Driven APIs)
Errors
Feedback Plan
API Implementation Checklist:
Index
Rubrieken
- advisering
- algemeen management
- coaching en trainen
- communicatie en media
- economie
- financieel management
- inkoop en logistiek
- internet en social media
- it-management / ict
- juridisch
- leiderschap
- marketing
- mens en maatschappij
- non-profit
- ondernemen
- organisatiekunde
- personal finance
- personeelsmanagement
- persoonlijke effectiviteit
- projectmanagement
- psychologie
- reclame en verkoop
- strategisch management
- verandermanagement
- werk en loopbaan