EPISODE · Jul 1, 2026 · 21 MIN
Course 37 - Building Web Apps with Ruby On Rails | Episode 18:Navigating GraphQL and the Graphiti Middle Ground
from CyberCode Academy · host CyberCode Academy
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:OverfetchingClient receives more data than neededUnderfetchingRequires multiple requests to get all dataNo strict typingErrors happen at runtimeHeavy reliance on documentation👉 Key InsightREST 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 InsightREST 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 InsightGraphQL eliminates overfetching and underfetching4. GraphQL Schema (Core Concept)🔹 Schema:Defines types and relationshipsActs as a contract between client and server🔹 Example:type User { id: ID name: String email: String } 👉 Key InsightGraphQL is strongly typed, unlike REST5. Queries vs Mutations🔹 Queries (read data):{ users { name } } 🔹 Mutations (write data):mutation { createUser(name: "John") { id } } 👉 Key InsightGraphQL separates read and write operations clearly6. Testing with GraphiQL🔹 Tool:GraphiQL🔹 Features:Run queries in browserExplore schemaDebug 👉 Key InsightGraphiQL improves developer experience significantly7. Downsides of GraphQL🔹 Trade-offs:No native HTTP cachingMore complex setupBoilerplate codeNo strict naming conventions👉 Key InsightGraphQL flexibility comes with added complexity8. Introducing Graphiti (Hybrid Approach)Using Graphiti:🔹 Goal:Combine REST simplicity + GraphQL flexibility🔹 Features:FilteringSortingIncluding relationships👉 Key InsightGraphiti gives you flexibility without abandoning REST9. Graphiti Resources🔹 Concept:Define API behavior using “Resources”🔹 Example:class UserResource < ApplicationResource attribute :name, :string end 👉 Key InsightResources act like a structured API layer10. REST vs GraphQL vs Graphiti🔹 REST:SimpleFastLimited flexibility🔹 GraphQL:FlexiblePrecise data fetchingMore complex🔹 Graphiti:Balanced approachKeeps HTTP benefitsAdds flexibility👉 Key InsightThere is no perfect solution—only trade-offs11. When to Use Each🔹 Use REST:Simple APIsStandard CRUD apps🔹 Use GraphQL:Complex frontend needsMultiple data sources🔹 Use Graphiti:Want flexibility + REST structure👉 Key InsightChoose based on project complexity and team needsKey TakeawaysREST suffers from overfetching and lack of typingGraphQL provides flexible, precise queriesGraphQL introduces complexity and trade-offsGraphiti offers a middle-ground solutionAPI design is about balancing performance, flexibility, and simplicityYou can listen and download our episodes for free on more than 10 different platforms:https://linktr.ee/cybercode_academy
Embed this episode
Ready to play
Course 37 - Building Web Apps with Ruby On Rails | Episode 18:Navigating GraphQL and the Graphiti Middle Ground
No transcript for this episode yet
Similar Episodes
No similar episodes found.