<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Stop Guessing, Start Verifying: A Modern API Documentation and Testing Toolkit</title>
        <link>https://phpc.tv/videos/watch/5625b5f2-4fb4-4591-903c-128bf973a907</link>
        <description>Made with Restream Studio. Livestream on 30+ platforms at once via https://restream.io APIs are only as good as the trust developers place in them. That trust is built through clear documentation and rigorous testing — yet in many teams, both remain an afterthought. This session makes the case for treating your OpenAPI specification as the single source of truth for your entire API lifecycle, and demonstrates how a modern toolchain can turn that spec into living documentation, a contract enforcement mechanism, and an automated test suite. We begin with OpenAPI as the foundation: structuring a spec that accurately models your API's requests, responses, and error states. From there, we'll explore Redocly to transform that spec into polished, developer-friendly reference documentation — covering customization, linting, and the Redocly CLI for integrating docs into your CI/CD pipeline. The second half of the session focuses on testing across multiple layers. We'll cover schema validation (ensuring your implementation matches the spec), contract testing (verifying that producer and consumer agreements hold across deployments), and negative testing (probing edge cases and malformed inputs). A key focus will be validating your existing PHPUnit test suite against your OpenAPI spec — asserting that the responses your application actually returns conform to the schemas you've documented, using tools like osteel/openapi-httpfoundation-testing or the php-openapi library. This approach surfaces drift between your spec and implementation without requiring a running server, and slots naturally into Laravel and Symfony testing workflows. We'll then use Schemathesis to drive property-based and fuzz testing directly from your OpenAPI spec — requiring zero test case authoring for broad coverage — and compare how spec-driven fuzzing complements the response assertions you've already built into PHPUnit. Finally, we'll introduce Arazzo, the emerging OpenAPI Initiative specification for describing multi-step API workflows. We'll walk through defining realistic end-to-end scenarios — authentication flows, resource creation chains, dependent call sequences — and show how Arazzo workflows close the gap between isolated endpoint testing and real-world usage patterns. Attendees Will Leave With Whether you maintain a public API or an internal microservices mesh, this session will give you the tools to ship APIs that are easier to understand, harder to break, and faster to debug. Presented by Alena Holligan For over 20 years, Alena has built technical solutions that inform decisions and solve problems across diverse industries. She enjoys both the creativity of programming and the thrill of solving a puzzle. As a leader in the community, a technical trainer, and a mom, she is passionate about providing the tools and mindset required for everyone to learn and succeed.</description>
        <lastBuildDate>Tue, 14 Apr 2026 19:06:36 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>PeerTube - https://phpc.tv</generator>
        <image>
            <title>Stop Guessing, Start Verifying: A Modern API Documentation and Testing Toolkit</title>
            <url>https://phpc.tv/lazy-static/avatars/a00c380b-7291-4db3-b239-61999888fbca.png</url>
            <link>https://phpc.tv/videos/watch/5625b5f2-4fb4-4591-903c-128bf973a907</link>
        </image>
        <copyright>All rights reserved, unless otherwise specified in the terms specified at https://phpc.tv/about and potential licenses granted by each content's rightholder.</copyright>
        <atom:link href="https://phpc.tv/feeds/video-comments.xml?videoId=5625b5f2-4fb4-4591-903c-128bf973a907" rel="self" type="application/rss+xml"/>
    </channel>
</rss>