Many organizations today orchestrate and maintain apps that rely on other people's services. Software designers, developers, and architects in those companies often work to coordinate and maintain apps based on existing microservices, including third-party services that run outside their ecosystem. This cookbook provides proven recipes to help you get those many disparate parts to work together in your network.

Author Mike Amundsen provides step-by-step solutions for finding, connecting, and maintaining applications designed and built by people outside the organization. Whether you're working on human-centric mobile apps or creating high-powered machine-to-machine solutions, this guide shows you the rules, routines, commands, and protocols--the glue--that integrates individual microservices so they can function together in a safe, scalable, and reliable way.

  • Design and build individual microservices that can successfully interact on the open web
  • Increase interoperability by designing services that share a common understanding
  • Build client applications that can adapt to evolving services without breaking
  • Create resilient and reliable microservices that support peer-to-peer interactions on the web
  • Use web-based service registries to support runtime "find-and-bind" operations that manage external dependencies in real time
  • Implement stable workflows to accomplish complex, multiservice tasks consistently

Table of Contents

  1. Preface
    1. About This Book
    2. Conventions Used in This Book
    3. Using Code Examples
    4. O’Reilly Online Learning
    5. How to Contact Us
    6. Acknowledgments
  2. 1. Introducing RESTful Web Microservices
    1. 1.1. What Are RESTful Web Microservices?
    2. 1.2. Why Hypermedia?
    3. 1.3. A Shared Principle for Scalable Services on the Web
  3. 2. Hypermedia Design Patterns
    1. Establishing a Foundation with Hypermedia Designs
    2. 2.1. Creating Interoperability with Registered Media Types
    3. 2.2. Ensuring Future Compatibility with Structured Media Types (SMTs)
    4. 2.3. Sharing Domain Specifics Via Published Vocabularies
    5. 2.4. Describing Problem Spaces with Semantic Profiles
    6. 2.5. Expressing Domain Actions at Run-time with Embedded Hypermedia
    7. 2.6. Designing Consistent Data Writes with Idempotent Actions