liveBook · Manning

What you will learn in Automating API Delivery

APIOps with OpenAPI

by Ikenna Nwaiwu
Foreword by Melissa van der Hecht

Chapter by chapter

Chapter 1: What is APIOps?

1.1 Scaling API delivery: Problems arising · 1.2 Tackling the scaling problem · 1.3 APIs and API products · 1.4 Why should you care about APIOps? · 1.5 Key principles of APIOps with OpenAPI · 1.5.1 Use a design-first approach to API development · 1.5.2 Store API definitions in version control · 1.5.3 Automate API standards compliance · 1.5.4 Run API conformance checks · 1.5.5 Store declarative API gateway configurations in version control · 1.5.6 Continuously reconcile the desired and actual state · 1.6 APIOps practices you’ll learn in this book · 1.7 How APIOps affects API governance · 1.8 Challenges with adopting APIOps with OpenAPI · 1.9 Summary

What you learn in chapter 1 →

Chapter 2: Leaning into APIOps: Problem-solving and leading improvements

2.1 Your company’s API quality and lead-time problem · 2.2 The A3 approach to APIOps improvements · 2.3 Theme and background · 2.4 Current conditions and problem statement · 2.4.1 Create the work process steps · 2.4.2 Draw the information flow · 2.4.3 Add performance metrics · 2.4.4 Review your map · 2.5 Goal statement · 2.6 Root-cause analysis · 2.7 Countermeasures and target conditions · 2.8 Effect confirmation · 2.9 Follow-up actions · 2.10 Reviewing your A3 · 2.11 Identifying waste in your value stream · 2.12 Benefits of using the A3 · 2.12.1 Think logically and objectively · 2.12.2 Gain alignment, and increase collaboration · 2.12.3 Apply a systems thinking approach · 2.13 Leading your APIOps transformation · 2.14 Summary

What you learn in chapter 2 →

Chapter 3: API linting: Automating API consistency

3.1 API linting in APIOps · 3.2 An API design compliance problem · 3.3 Introducing API linters · 3.4 Running Spectral to check for compliance · 3.5 Running Spectral linting in VS Code · 3.6 Creating a Spectral rule for info.description · 3.7 Creating a Spectral rule for path versioning · 3.8 Extending rulesets · 3.9 Overriding API linting rules · 3.10 Introducing AI coding assistants · 3.10.1 Prompting Copilot to create linting rules · 3.11 Using LLMs for automated linting · 3.11.1 Linting with Anthropic Claude · 3.11.2 Linting with Optic’s LintGPT · 3.12 Summary

What you learn in chapter 3 →

Chapter 4: Breaking change checks: Managing API evolution

4.1 API definition changes in your APIOps workflow · 4.2 The problem of understanding what changed · 4.3 API diffs · 4.4 Detecting breaking changes · 4.5 Generating API changelogs · 4.6 Breaking changes and API evolution · 4.7 API versioning schemes · 4.7.1 Path-based versioning scheme · 4.7.2 Hostname-based versioning scheme · 4.7.3 Query string-based versioning scheme · 4.7.4 Custom-header versioning scheme · 4.7.5 Accept header versioning scheme · 4.7.6 Pinned versioning scheme · 4.7.7 No versioning scheme · 4.7.8 Combination of various schemes · 4.8 API versioning scope · 4.8.1 Global versioning scope · 4.8.2 Per-resource versioning scope · 4.8.3 Per-endpoint versioning scope · 4.9 API versioning identifiers · 4.9.1 SemVer · 4.9.2 CalVer · 4.9.3 Stability version · 4.10 Costs involved with version migration · 4.11 Breaking change policy · 4.11.1 Defining your breaking and nonbreaking changes · 4.11.2 API version stability · 4.11.3 API version scheduling · 4.12 Managing breaking changes · 4.13 Summary

What you learn in chapter 4 →

Chapter 5: API design review: Checking for what you cannot automate

5.1 What is an API design review? · 5.2 Running an API review meeting · 5.2.1 Set up the meeting, and invite participants · 5.2.2 Present the review agenda · 5.2.3 Provide the business context for the review · 5.2.4 Review the API resource model · 5.2.5 Review the API definition · 5.2.6 Note new API patterns or style guide gaps · 5.2.7 Present an end-of-meeting survey · 5.3 Challenges with API reviews · 5.3.1 Adopting a user-centric approach · 5.3.2 Poor modeling before reviews · 5.3.3 Reviews occur late in the process · 5.3.4 Deciding the level of review to apply · 5.4 Measuring review effectiveness · 5.4.1 Automated checks · 5.4.2 Design review meetings · 5.5 Defining your API design review process · 5.5.1 Make it easily discoverable · 5.5.2 Define principles and goals · 5.5.3 Describe review process metrics · 5.5.4 Define roles and responsibilities in the process · 5.5.5 Face-to-face reviews on request · 5.5.6 Categorize APIs by review level required · 5.5.7 Have an explicit approval step · 5.5.8 Changes after approval · 5.5.9 Define a way of signifying exceptions · 5.5.10 Describe how reviews will be prioritized · 5.5.11 Provide expected review timelines · 5.5.12 Make review work visible · 5.5.13 Describe how to become an API reviewer · 5.6 API review examples · 5.6.1 API stewardship at Microsoft Azure · 5.6.2 The API Improvement Proposal process at Google · 5.6.3 The API design review process at Slack · 5.6.4 The Kubernetes API review process · 5.7 Summary

What you learn in chapter 5 →

Chapter 6: API conformance: Generating code and API definitions

6.1 The API conformance problem · 6.2 Generating code from OpenAPI · 6.2.1 Spring Boot from OpenAPI · 6.2.2 Deploying to the gateway · 6.2.3 Publishing to the developer portal · 6.2.4 An update to the SOT · 6.2.5 Republishing your SOT to the portal · 6.2.6 Generating client SDKs · 6.2.7 Advantages of generating from the SOT · 6.2.8 Dealing with responses from the gateway · 6.2.9 Customizing code generation · 6.3 Generating OpenAPI from code · 6.3.1 Generating OpenAPI with springdoc · 6.3.2 Things to consider with generated definitions · 6.4 Summary

What you learn in chapter 6 →

Chapter 7: API conformance: Schema testing

7.1 Schema tests · 7.2 Code-based schema tests · 7.2.1 Writing end-to-end schema tests · 7.2.2 Writing controller schema tests · 7.3 Things to consider with code-based schema tests · 7.4 Generating schema tests · 7.4.1 Using Schemathesis for schema testing · 7.4.2 Using Portman for schema testing · 7.5 Using a validating proxy for consistency · 7.6 Comparing API conformance approaches · 7.7 How schema tests differ from consumer-driven contract tests · 7.8 Summary

What you learn in chapter 7 →

Chapter 8: CI/CD for API artifacts 1: Source-stage governance controls

8.1 The problem with sharing API design proposals · 8.2 Version control to the rescue · 8.3 Auto-validating the MDRC · 8.4 Introduction to GitHub Actions · 8.5 Setting up the MDRC · 8.5.1 Check the work ticket reference · 8.5.2 Create a PR template · 8.5.3 Run API linting in the pipeline · 8.5.4 Run breaking change checks in the pipeline · 8.5.5 Run prose linting · 8.5.6 Requiring PR approvals from the governance team · 8.6 Automated governance controls · 8.7 PR builds · 8.8 PR description policies · 8.9 Code owners · 8.10 Prose linting · 8.11 Supporting API design proposals in the pipeline · 8.11.1 Understand the users and their requirements · 8.11.2 Design the pipeline for fast feedback · 8.11.3 Make it easy to see why the build failed · 8.11.4 Linting failures can link to the API style guide · 8.11.5 Collect design review time metrics · 8.11.6 Include static security checks in the PR build · 8.12 Rendering the API definition for review · 8.12.1 Integrating the source repository with an ADC · 8.12.2 Publish the PR OpenAPI definition file on a server · 8.12.3 Use a source repository viewer plugin · 8.13 Reusing API objects: Multifile API definitions · 8.13.1 Splitting an OpenAPI definition · 8.13.2 Combining your multifile document · 8.13.3 Things to consider with multifile API definitions · 8.13.4 Tooling for multifile API definitions · 8.14 Summary

What you learn in chapter 8 →

Chapter 9: CI/CD for API artifacts 2: Build-stage and API configuration deployment

9.1 Build stage: Transforming API definition files · 9.1.1 Updating the pipeline code · 9.1.2 Storing API definitions in an API registry · 9.2 Build stage: Simulating APIs with mocks · 9.2.1 Benefits of API simulations · 9.2.2 Types of mock APIs and mock tool modes · 9.2.3 Using mock APIs to test for real-world scenarios · 9.3 Build stage: Generating and storing SDKs · 9.3.1 Benefits of providing an SDK · 9.3.2 Challenges with building an SDK · 9.3.3 Updating the pipeline to generate the SDK · 9.3.4 Storing SDKs in artifact repositories · 9.3.5 Updating the pipeline to store the SDK · 9.4 Deploy and Test stage: Deploying API Gateway configuration · 9.4.1 APIOps deployments · 9.4.2 Updating application configuration · 9.4.3 Challenges with GitOps · 9.4.4 APIOps and team topologies · 9.4.5 Deploying in your example pipeline · 9.5 Summary

What you learn in chapter 9 →

Chapter 10: More on API consistency: Custom linting and security checks

10.1 The need for custom functions · 10.1.1 Searching for reusable rules · 10.1.2 Writing a test for your linting rule · 10.1.3 Writing the custom rule · 10.1.4 Defining the custom function · 10.1.5 Notes on writing custom functions · 10.2 Automated security review of your API definitions · 10.2.1 Introducing API Security · 10.2.2 API1:2023 - Broken Object Level Authorization · 10.2.3 API2:2023 - Broken Authentication · 10.2.4 API3:2023 - Broken Object Property Level Authorization · 10.2.5 API4:2023 - Unrestricted Resource Consumption · 10.2.6 API5:2023 - Broken Function Level Authorization · 10.2.7 API6:2023 - Unrestricted Access to Sensitive Business Flows · 10.2.8 API7:2023 - Server-Side Request Forgery · 10.2.9 API8:2023 - Security Misconfiguration · 10.2.10 API9:2023 - Improper Inventory Management · 10.2.11 API10:2023 - Unsafe Consumption of APIs · 10.2.12 Validating traffic in the gateway using OpenAPI · 10.2.13 Generating API definitions from traffic · 10.2.14 API security platforms · 10.3 DevSecOps · 10.4 Summary

What you learn in chapter 10 →

Chapter 11: Monitoring and analytics: Measuring API product metrics

11.1 API product analytics: The business challenge · 11.1.1 API product development as a PDSA cycle · 11.1.2 The developer journey map · 11.1.3 API product metrics · 11.1.4 Tracking metrics for the Product Catalog API · 11.2 API monitoring metrics · 11.2.1 RED metrics · 11.2.2 Rate limits · 11.2.3 Monitoring tools · 11.2.4 Alerting and synthetic monitoring · 11.2.5 Service level indicators, service level objectives, and service level agreements · 11.3 Wrapping it up · 11.4 Summary

What you learn in chapter 11 →

Concepts explained in this book

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.