, , , , e.a.

Patterns for API Design

Simplifying Integration with Loosely Coupled Message Exchanges

Paperback Engels 2023 9780137670109
Verwachte levertijd ongeveer 9 werkdagen

Samenvatting

Proven Patterns for Designing Evolvable High-Quality APIs--For Any Domain, Technology, or Platform

APIs enable breakthrough innovation and digital transformation in organizations and ecosystems of all kinds. To create user-friendly, reliable and well-performing APIs, architects, designers, and developers need expert design guidance. This practical guide cuts through the complexity of API conversations and their message contents, introducing comprehensive guidelines and heuristics for designing APIs sustainably and specifying them clearly, for whatever technologies or platforms you use.

In Patterns for API Design: Simplifying Integration with Loosely Coupled Message Exchanges, five expert architects and developers cover the entire API lifecycle, from launching projects and establishing goals through defining requirements, elaborating designs, planning evolution, and creating useful documentation. They crystallize the collective knowledge of many practitioners into 44 API design patterns, consistently explained with context, pros and cons, conceptual solutions, and concrete examples. To make their pattern language accessible, they present a domain model, a running case study, decision narratives with pattern selection options and criteria, and walkthroughs of real-world projects applying the patterns in two different industries. Identify and overcome API design challenges with patterns Size your endpoint types and operations adequately Design request and response messages and their representations Refine your message design for quality Plan to evolve your APIs Document and communicate your API contracts Combine patterns to solve real-world problems and make the right tradeoffs

"This book provides a healthy mix of theory and practice, containing numerous nuggets of deep advice but never losing the big picture . . . grounded in real-world experience and documented with academic rigor applied and practitioner community feedback incorporated. I am confident that [it] will serve the community well, today and tomorrow."

--Prof. Dr. Dr. h. c. Frank Leymann, Managing Director, Institute of Architecture of Application Systems, University of Stuttgart

Specificaties

ISBN13:9780137670109
Taal:Engels
Bindwijze:Paperback

Lezersrecensies

Wees de eerste die een lezersrecensie schrijft!

Inhoudsopgave

<p>Foreword by Vaughn Vernon, Series Editor&nbsp;&nbsp;&nbsp;&nbsp; xvii</p> <p>Foreword by Frank Leymann&nbsp;&nbsp;&nbsp;&nbsp; xxi</p> <p>Preface&nbsp;&nbsp;&nbsp;&nbsp; xxiii</p> <p>&nbsp;</p> <p><strong>Part 1: Foundations and Narratives</strong>&nbsp;&nbsp;&nbsp;&nbsp; 1</p> <p><strong>Chapter 1:</strong> Application Programming Interface (API) Fundamentals&nbsp;&nbsp;&nbsp;&nbsp; 3</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; From Local Interfaces to Remote APIs&nbsp;&nbsp;&nbsp;&nbsp; 3</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Decision Drivers in API Design&nbsp;&nbsp;&nbsp;&nbsp; 14</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; A Domain Model for Remote APIs&nbsp;&nbsp;&nbsp;&nbsp; 22</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Summary&nbsp;&nbsp;&nbsp;&nbsp; 28</p> <p>&nbsp;</p> <p><strong>Chapter 2:</strong> Lakeside Mutual Case Study&nbsp;&nbsp;&nbsp;&nbsp; 31</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Business Context and Requirements&nbsp;&nbsp;&nbsp;&nbsp; 31</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Architecture Overview&nbsp;&nbsp;&nbsp;&nbsp; 35</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; API Design Activities&nbsp;&nbsp;&nbsp;&nbsp; 39</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Target API Specification&nbsp;&nbsp;&nbsp;&nbsp; 39</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Summary&nbsp;&nbsp;&nbsp;&nbsp; 41</p> <p>&nbsp;</p> <p><strong>Chapter 3:</strong> API Decision Narratives&nbsp;&nbsp;&nbsp;&nbsp; 43</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Prelude: Patterns as Decision Options, Forces as Decision Criteria&nbsp;&nbsp;&nbsp;&nbsp; 43</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Foundational API Decisions and Patterns&nbsp;&nbsp;&nbsp;&nbsp; 45</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Decisions about API Roles and Responsibilities&nbsp;&nbsp;&nbsp;&nbsp; 57</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Selecting Message Representation Patterns&nbsp;&nbsp;&nbsp;&nbsp; 70</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Interlude: Responsibility and Structure Patterns in the Lakeside Mutual Case&nbsp;&nbsp;&nbsp;&nbsp; 82</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Governing API Quality&nbsp;&nbsp;&nbsp;&nbsp; 84</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Deciding for API Quality Improvements&nbsp;&nbsp;&nbsp;&nbsp; 98</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Decisions about API Evolution&nbsp;&nbsp;&nbsp;&nbsp; 110</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Summary&nbsp;&nbsp;&nbsp;&nbsp; 122</p> <p>&nbsp;</p> <p><strong>Part 2: The Patterns</strong>&nbsp;&nbsp;&nbsp;&nbsp; 125</p> <p><strong>Chapter 4:</strong> Pattern Language Introduction &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;127</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Positioning and Scope&nbsp;&nbsp;&nbsp;&nbsp; 128</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Patterns: Why and How?&nbsp;&nbsp;&nbsp;&nbsp; 130</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Navigating through the Patterns&nbsp;&nbsp;&nbsp;&nbsp; 131</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Foundations: API Visibility and Integration Types&nbsp;&nbsp;&nbsp;&nbsp; 137</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Basic Structure Patterns&nbsp;&nbsp;&nbsp;&nbsp; 146</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Summary&nbsp;&nbsp;&nbsp;&nbsp; 158</p> <p>&nbsp;</p> <p><strong>Chapter 5:</strong> Define Endpoint Types and Operations&nbsp;&nbsp;&nbsp;&nbsp; 161</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Introduction to API Roles and Responsibilities&nbsp;&nbsp;&nbsp;&nbsp; 162</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Endpoint Roles (aka Service Granularity)&nbsp;&nbsp;&nbsp;&nbsp; 167</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Operation Responsibilities&nbsp;&nbsp;&nbsp;&nbsp; 215</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Summary&nbsp;&nbsp;&nbsp;&nbsp; 248</p> <p>&nbsp;</p> <p><strong>Chapter 6:</strong> Design Request and Response Message Representations&nbsp;&nbsp;&nbsp;&nbsp; 253</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Introduction to Message Representation Design&nbsp;&nbsp;&nbsp;&nbsp; 253</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Element Stereotypes&nbsp;&nbsp;&nbsp;&nbsp; 256</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Special-Purpose Representations&nbsp;&nbsp;&nbsp;&nbsp; 282</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Summary &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;305</p> <p>&nbsp;</p> <p><strong>Chapter 7:</strong> Refine Message Design for Quality &nbsp;309</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Introduction to API Quality&nbsp;&nbsp;&nbsp;&nbsp; 309</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Message Granularity&nbsp;&nbsp;&nbsp;&nbsp; 313</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; Client-Driven Message Content (aka Response Shaping)&nbsp;&nbsp;&nbsp;&nbsp; 325</p> <p>Message Exchange Optimization (aka Conversation Efficiency)&nbsp;&nbsp;&nbsp;&nbsp; 344</p> <p>Summary&nbsp;&nbsp;&nbsp;&nbsp; 355</p> <p>&nbsp;</p> <p><strong>Chapter 8:</strong> Evolve APIs&nbsp;&nbsp;&nbsp;&nbsp; 357</p> <p>Introduction to API Evolution&nbsp;&nbsp;&nbsp;&nbsp; 357</p> <p>Versioning and Compatibility Management&nbsp;&nbsp;&nbsp;&nbsp; 362</p> <p>Life-Cycle Management Guarantees&nbsp;&nbsp;&nbsp;&nbsp; 374</p> <p>Summary&nbsp;&nbsp;&nbsp;&nbsp; 393</p> <p>&nbsp;</p> <p><strong>Chapter 9:</strong> Document and Communicate API Contracts&nbsp;&nbsp;&nbsp;&nbsp; 395</p> <p>Introduction to API Documentation&nbsp;&nbsp;&nbsp;&nbsp; 395</p> <p>Documentation Patterns&nbsp;&nbsp;&nbsp;&nbsp; 398</p> <p>Summary&nbsp;&nbsp;&nbsp;&nbsp; 421</p> <p>&nbsp;</p> <p>&nbsp;</p> <p><strong>Part 3: Our Patterns in Action (Now and Then)</strong>&nbsp;&nbsp;&nbsp;&nbsp; 423</p> <p><strong>Chapter 10: </strong>Real-World Pattern Stories&nbsp;&nbsp;&nbsp;&nbsp; 425</p> <p>Large-Scale Process Integration in the Swiss Mortgage Business&nbsp;&nbsp;&nbsp;&nbsp; 426</p> <p>Offering and Ordering Processes in Building Construction&nbsp;&nbsp;&nbsp;&nbsp; 438</p> <p>Summary&nbsp;&nbsp;&nbsp;&nbsp; 445</p> <p>&nbsp;</p> <p><strong>Chapter 11: </strong>Conclusion&nbsp;&nbsp;&nbsp;&nbsp; 447</p> <p>Short Retrospective&nbsp;&nbsp;&nbsp;&nbsp; 448</p> <p>API Research: Refactoring to Patterns, MDSL, and More&nbsp;&nbsp;&nbsp;&nbsp; 449</p> <p>The Future of APIs&nbsp;&nbsp;&nbsp;&nbsp; 450</p> <p>Additional Resources&nbsp;&nbsp;&nbsp;&nbsp; 451</p> <p>Final Remarks&nbsp;&nbsp;&nbsp;&nbsp; 451</p> <p>&nbsp;</p> <p>Appendix A: Endpoint Identification and Pattern Selection Guides&nbsp;&nbsp;&nbsp;&nbsp; 453</p> <p>Appendix B: Implementation of the Lakeside Mutual Case&nbsp;&nbsp;&nbsp;&nbsp; 463</p> <p>Appendix C: Microservice Domain-Specific Language (MDSL)&nbsp;&nbsp;&nbsp;&nbsp; 471</p> <p>&nbsp;</p> <p>Bibliography&nbsp;&nbsp;&nbsp;&nbsp; 483</p> <p>Index&nbsp;&nbsp;&nbsp;&nbsp; 499</p>

Managementboek Top 100

Rubrieken

Populaire producten

    Personen

      Trefwoorden

        Patterns for API Design