Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Preface
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
Showing relationships Non-CRUD operations
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
Preventing replay attacks
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
Meaningful errors Build tooling
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
Reviewing the specification with stakeholders Mocking data for interactive user testing Beta testers
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
Advantages and disadvantages
Cursor-Based Pagination
Advantages and disadvantages Choosing what goes in the cursor
Pagination Best Practices
Rate-Limiting APIs
What Is Rate-Limiting? Implementation Strategies
Token bucket Fixed-window counter Sliding-window counter
Rate Limits and Developers
Return appropriate HTTP status codes Rate-limit custom response headers Rate-limit status API Documenting rate limits
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
Describing and validating responses Describing and validating requests
Backward Compatibility Planning for and Communicating Change
Communication Plan Adding Removing Versioning
Additive-change strategy Explicit-version strategy Versioning case study: Stripe Versioning case study: Google+ Hangouts Process management
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
Identity Developer proficiency Platform of choice Preferred development language, framework, and development tools Common use cases and tasks Preferred means of communication Market size and geographical distribution Real-life example
Distilling the Value Proposition Defining Your Developer Funnel
Funnel indicators
Mapping the Current and Future State Outlining Your Tactics
Awareness tactics examples Proficiency tactics examples Usage tactics examples Success tactics examples
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
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion