Contents

  1. Foreword by Vaughn Vernon, Series Editor

  2. Foreword by Frank Leymann

  3. Preface

  4. Acknowledgments

  5. About the Authors

  6. Part 1: Foundations and Narratives

    1. Chapter 1: Application Programming Interface (API) Fundamentals

      1. From Local Interfaces to Remote APIs

        1. A Bit of Distribution and Remoting History

        2. Remote API: Access to Services via Protocol for Integration

        3. APIs Matter

      2. Decision Drivers in API Design

        1. What Makes an API Successful?

        2. How Do API Designs Differ?

        3. What Makes API Design Challenging?

        4. Architecturally Significant Requirements

        5. Developer Experience

      3. A Domain Model for Remote APIs

        1. Communication Participants

        2. Endpoints Offer Contracts Describing Operations

        3. Messages as Conversation Building Blocks

        4. Message Structure and Representation

        5. API Contract

        6. Domain Model Usage throughout the Book

      4. Summary

    2. Chapter 2: Lakeside Mutual Case Study

      1. Business Context and Requirements

        1. User Stories and Desired Qualities

        2. Analysis-Level Domain Model

      2. Architecture Overview

        1. System Context

        2. Application Architecture

      3. API Design Activities

      4. Target API Specification

      5. Summary

    3. Chapter 3: API Decision Narratives

      1. Prelude: Patterns as Decision Options, Forces as Decision Criteria

      2. Foundational API Decisions and Patterns

        1. API Visibility

        2. API Integration Types

        3. Documentation of the API

      3. Decisions about API Roles and Responsibilities

        1. Architectural Role of an Endpoint

        2. Refining Information Holder Roles

        3. Defining Operation Responsibilities

      4. Selecting Message Representation Patterns

        1. Flat versus Nested Structure of Representation Elements

        2. Element Stereotypes

      5. Interlude: Responsibility and Structure Patterns in the Lakeside Mutual Case

      6. Governing API Quality

        1. Identification and Authentication of the API Client

        2. Metering and Charging for API Consumption

        3. Preventing API Clients from Excessive API Usage

        4. Explicit Specification of Quality Objectives and Penalties

        5. Communication of Errors

        6. Explicit Context Representation

      7. Deciding for API Quality Improvements

        1. Pagination

        2. Other Means of Avoiding Unnecessary Data Transfer

        3. Handling Referenced Data in Messages

      8. Decisions about API Evolution

        1. Versioning and Compatibility Management

        2. Strategies for Commissioning and Decommissioning

      9. Interlude: Quality and Evolution Patterns in the Lakeside Mutual Case

      10. Summary

  7. Part 2: The Patterns

    1. Chapter 4: Pattern Language Introduction

      1. Positioning and Scope

      2. Patterns: Why and How?

      3. Navigating through the Patterns

        1. Structural Organization: Find Patterns by Scope

        2. Theme Categorization: Search for Topics

        3. Time Dimension: Follow Design Refinement Phases

        4. How to Navigate: The Map to MAP

      4. Foundations: API Visibility and Integration Types

        1. Pattern: FRONTEND INTEGRATION

        2. Pattern: BACKEND INTEGRATION

        3. Pattern: PUBLIC API

        4. Pattern: COMMUNITY API

        5. Pattern: SOLUTION-INTERNAL API

        6. Foundation Patterns Summary

      5. Basic Structure Patterns

        1. Pattern: ATOMIC PARAMETER

        2. Pattern: ATOMIC PARAMETER LIST

        3. Pattern: PARAMETER TREE

        4. Pattern: PARAMETER FOREST

        5. Basic Structure Patterns Summary

      6. Summary

    2. Chapter 5: Define Endpoint Types and Operations

      1. Introduction to API Roles and Responsibilities

        1. Challenges and Desired Qualities

        2. Patterns in this Chapter

      2. Endpoint Roles (aka Service Granularity)

        1. Pattern: PROCESSING RESOURCE

        2. Pattern: INFORMATION HOLDER RESOURCE

        3. Pattern: OPERATIONAL DATA HOLDER

        4. Pattern: MASTER DATA HOLDER

        5. Pattern: REFERENCE DATA HOLDER

        6. Pattern: LINK LOOKUP RESOURCE

        7. Pattern: DATA TRANSFER RESOURCE

      3. Operation Responsibilities

        1. Pattern: STATE CREATION OPERATION

        2. Pattern: RETRIEVAL OPERATION

        3. Pattern: STATE TRANSITION OPERATION

        4. Pattern: COMPUTATION FUNCTION

      4. Summary

    3. Chapter 6: Design Request and Response Message Representations

      1. Introduction to Message Representation Design

        1. Challenges When Designing Message Representations

        2. Patterns in this Chapter

      2. Element Stereotypes

        1. Pattern: DATA ELEMENT

        2. Pattern: METADATA ELEMENT

        3. Pattern: ID ELEMENT

        4. Pattern: LINK ELEMENT

      3. Special-Purpose Representations

        1. Pattern: API KEY

        2. Pattern: ERROR REPORT

        3. Pattern: CONTEXT REPRESENTATION

      4. Summary

    4. Chapter 7: Refine Message Design for Quality

      1. Introduction to API Quality

        1. Challenges When Improving API Quality

        2. Patterns in This Chapter

      2. Message Granularity

        1. Pattern: EMBEDDED ENTITY

        2. Pattern: LINKED INFORMATION HOLDER

      3. Client-Driven Message Content (aka Response Shaping)

        1. Pattern: PAGINATION

        2. Pattern: WISH LIST

        3. Pattern: WISH TEMPLATE

      4. Message Exchange Optimization (aka Conversation Efficiency)

        1. Pattern: CONDITIONAL REQUEST

        2. Pattern: REQUEST BUNDLE

      5. Summary

    5. Chapter 8: Evolve APIs

      1. Introduction to API Evolution

        1. Challenges When Evolving APIs

        2. Patterns in This Chapter

      2. Versioning and Compatibility Management

        1. Pattern: VERSION IDENTIFIER

        2. Pattern: SEMANTIC VERSIONING

      3. Life-Cycle Management Guarantees

        1. Pattern: EXPERIMENTAL PREVIEW

        2. Pattern: AGGRESSIVE OBSOLESCENCE

        3. Pattern: LIMITED LIFETIME GUARANTEE

        4. Pattern: TWO IN PRODUCTION

      4. Summary

    6. Chapter 9: Document and Communicate API Contracts

      1. Introduction to API Documentation

        1. Challenges When Documenting APIs

        2. Patterns in This Chapter

      2. Documentation Patterns

        1. Pattern: API DESCRIPTION

        2. Pattern: PRICING PLAN

        3. Pattern: RATE LIMIT

        4. Pattern: SERVICE LEVEL AGREEMENT

      3. Summary

  8. Part 3: Our Patterns in Action (Now and Then)

    1. Chapter 10: Real-World Pattern Stories

      1. Large-Scale Process Integration in the Swiss Mortgage Business

        1. Business Context and Domain

        2. Technical Challenges

        3. Role and Status of API

        4. Pattern Usage and Implementation

        5. Retrospective and Outlook

      2. Offering and Ordering Processes in Building Construction

        1. Business Context and Domain

        2. Technical Challenges

        3. Role and Status of API

        4. Pattern Usage and Implementation

        5. Retrospective and Outlook

      3. Summary

    2. Chapter 11: Conclusion

      1. Short Retrospective

      2. API Research: Refactoring to Patterns, MDSL, and More

      3. The Future of APIs

      4. Additional Resources

      5. Final Remarks

  9. Appendix A: Endpoint Identification and Pattern Selection Guides

  10. Appendix B: Implementation of the Lakeside Mutual Case

  11. Appendix C: Microservice Domain-Specific Language (MDSL)

  12. Bibliography

  13. Index

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.15.172.195