{"podcast":{"title":"Go Time: Golang, Software Engineering","slug":"go-time-golang-software-engineering","podcast_index_feed_id":218840,"rss_url":"https://changelog.com/gotime/feed","website_url":"https://changelog.com/gotime","image_url":"https://cdn.changelog.com/uploads/covers/go-time-original.png?v=63725770357","author":"Changelog Media","episode_count":347,"summary":"Your source for wide-ranging discussions from all around the Go community. Panelists include Mat Ryer, Jon Calhoun, Natalie Pistunovich, Johnny Boursiquot, Angelica Hill, Kris Brandow, and Ian Lopshire. We discuss cloud infrastructure, distributed systems, microservices, Kubernetes, Docker... oh and also Go! Some people search for GoTime or GoTimeFM and can't find the show, so now the strings GoTime and GoTimeFM are in our description too.","last_synced_at":null,"page_url":"https://stenobird.com/podcast/go-time-golang-software-engineering"},"episode":{"title":"OpenAPI & API design","slug":"openapi-api-design","published_at":"2024-08-08T14:15:00+00:00","page_url":"https://stenobird.com/podcast/go-time-golang-software-engineering/openapi-api-design","show_page_url":"https://stenobird.com/podcast/go-time-golang-software-engineering","url":"https://changelog.com/gotime/328","audio_url":"https://op3.dev/e/https://cdn.changelog.com/uploads/gotime/328/go-time-328.mp3","summary":"A deep dive into the complexities of API design, focusing on the utility of OpenAPI for structured documentation and type generation. The discussion explores the tension between versioning strategies and the difficulty of maintaining backward compatibility in evolving ecosystems.","meta_description":"Explore the nuances of OpenAPI, API versioning challenges, and the future of automated code transformations with the maintainer of oapi-codegen.","key_points":["Main idea: OpenAPI serves as a structured alternative to unstructured, unmaintained text-based documentation","Practical takeaway: Using tools like oapi-codegen allows for the automated generation of models, types, and clients to ensure consistency","Failure mode: Treating major version bumps as a way to avoid the hard work of managing granular, backward-compatible changes","Main idea: Effective API design requires thinking about automated upgrade paths and migration recipes rather than just breaking changes","Practical takeaway: Open source sustainability relies on active contributor coaching and new funding models like GitHub Sponsors"],"chapters":[{"start_ms":60000,"title":"Cloud Development Environments","summary":"An introduction to Coder and how cloud-based infrastructure can standardize development environments for large engineering teams."},{"start_ms":390000,"title":"The Value of OpenAPI","summary":"Moving beyond unstructured documentation to JSON/YAML-based specifications that define API behavior precisely."},{"start_ms":730000,"title":"Customizing Code Generation","summary":"Discussing the ability to override templates in code generation tools to meet specific internal architectural needs."},{"start_ms":1055000,"title":"Generating Clients and Models","summary":"The primary benefits of using OpenAPI for generating usable SDKs, request/response models, and type-safe clients."},{"start_ms":1385000,"title":"The Versioning Dilemma","summary":"The difficulty of managing API changes and versioning when acting as a service provider for other internal teams."},{"start_ms":1730000,"title":"The Cost of Breaking Changes","summary":"Analyzing the friction caused by major version jumps and the importance of creating seamless migration paths."},{"start_ms":2085000,"title":"Infrastructure and Compatibility","summary":"Understanding the responsibility of consumers to abide by the evolving specifications of the infrastructure they build upon."},{"start_ms":2420000,"title":"Automation in API Evolution","summary":"Exploring the potential for automated transformations to help developers migrate between API versions without manual effort."}],"topics":["OpenAPI","API Design","Software Engineering","Code Generation","Versioning","Open Source Maintenance","Go Programming","Cloud Development Environments"],"duration_seconds":4452,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/go-time-golang-software-engineering/episodes/openapi-api-design/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/go-time-golang-software-engineering/openapi-api-design.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]}}