Episode
Course 37 - Building Web Apps with Ruby On Rails | Episode 18:Navigating GraphQL and the Graphiti Middle Ground
- Podcast
- CyberCode Academy
- Published
- Jul 1, 2026
- Duration seconds
- 1283
- Processing state
not_requested
Actions
POST https://stenobird.com/v1/public/podcasts/cybercode-academy-7578615/episodes/course-37-building-web-apps-with-ruby-on-rails-episode-18-navigating-graphql-and-the-graphiti-middle-ground/transcription-requests
Idempotently request low-priority transcript generation for this episode.GET https://stenobird.com/podcast/cybercode-academy-7578615/course-37-building-web-apps-with-ruby-on-rails-episode-18-navigating-graphql-and-the-graphiti-middle-ground.md
Read the agent-friendly Markdown representation of this episode resource.
Summary
In this lesson, you’ll learn about: REST limitations, GraphQL fundamentals, and the hybrid approach with Graphiti1. The Problem with REST APIsUsing REST:🔹 Key limitations: Overfetching Client receives more data than needed Underfetching Requires multiple requests to get all data No strict typing Errors happen at runtime Heavy reliance on documentation 👉 Key Insight REST is simple and scalable—but not always efficient2. Example of Overfetching🔹 Request:GET /users/1 🔹 Response:{ "id": 1, "name": "John", "email": "[email protected]", "address": "...", "preferences": "...", "settings": "..." } 👉 Problem: Client may only need name 👉 Key Insight REST responses are fixed by the server, not flexible for clients3. Introducing GraphQLUsing GraphQL:🔹 What it solves: Clients request exactly what they need 🔹 Example query:{ user(id: 1) { name } } 👉 Response:{ "data": { "user": { "name": "John" } } } 👉 Key Insight GraphQL eliminates overfetching and underfetching4. GraphQL Schema (Core Concept)🔹 Schema: Defines types and relationships Acts as a contract between client and server 🔹 Example:type User { id: ID name: String email: String } 👉 Key Insight GraphQL is strongly typed, unlike REST5. Queries vs Mutations🔹 Queries (read data):{ users { name } } 🔹 Mutations (write data):mutation { createUser(name: "John") { id } } 👉 Key Insight GraphQL separates read and write operations clearly6. Testing with GraphiQL🔹 Tool: GraphiQL 🔹 Features: Run queries in browser Explore schema Debug 👉 Key Insight GraphiQL improves developer experience significantly7. Downsides of GraphQL🔹 Trade-offs: No native HTTP caching More complex setup Boilerplate code No strict naming conventions 👉 Key Insight GraphQL flexibility comes with added complexity8. Introducing Graphiti (Hybrid Approach)Using Graphiti:🔹 Go…