[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-api-design-rest-graphql-trpc-vergleich":3},{"_createdAt":4,"_id":5,"author":6,"body":7,"canonicalUrl":239,"category":240,"coverImage":241,"excerpt":248,"featured":249,"publishedAt":250,"readingTime":251,"relatedPosts":239,"seoDescription":252,"seoTitle":253,"slug":254,"tags":257,"title":264},"2026-04-14T11:16:07Z","epzDXqrM0Ug1OrZfNfKIzD","Joel Schwegmann",[8,19,28,36,44,53,63,71,79,87,95,103,111,119,127,135,143,151,159,167,175,183,191,199,207,215,223,231],{"_key":9,"_type":10,"children":11,"markDefs":17,"style":18},"4984e406-cb4","block",[12],{"_key":13,"_type":14,"marks":15,"text":16},"c56d0042-59a","span",[],"Drei Paradigmen, ein Ziel",[],"h2",{"_key":20,"_type":10,"children":21,"markDefs":26,"style":27},"7c8b5ef7-ec6",[22],{"_key":23,"_type":14,"marks":24,"text":25},"bf966966-09e",[],"Jede moderne Webanwendung braucht eine API. Die Frage ist: Welches Paradigma wähle ich? REST ist der bewährte Standard, GraphQL bietet Flexibilität und tRPC verspricht End-to-End-Typsicherheit. Lass uns die drei Ansätze praxisnah vergleichen.",[],"normal",{"_key":29,"_type":10,"children":30,"markDefs":35,"style":18},"8afef676-d30",[31],{"_key":32,"_type":14,"marks":33,"text":34},"00787a93-a6e",[],"REST: Der bewährte Standard",[],{"_key":37,"_type":10,"children":38,"markDefs":43,"style":27},"6d3219ac-936",[39],{"_key":40,"_type":14,"marks":41,"text":42},"5d9605e4-9ec",[],"REST APIs nutzen HTTP-Methoden (GET, POST, PUT, DELETE) und klare URL-Strukturen. Sie sind einfach zu verstehen, zu cachen und zu debuggen. Der Nachteil: Over-Fetching (zu viele Daten) und Under-Fetching (zu wenige Daten pro Request) erfordern oft zusätzliche Endpoints.",[],{"_key":45,"_type":10,"children":46,"markDefs":51,"style":52},"0f429503-c34",[47],{"_key":48,"_type":14,"marks":49,"text":50},"9425fd12-402",[],"Stärken von REST:",[],"h3",{"_key":54,"_type":10,"children":55,"level":60,"listItem":61,"markDefs":62,"style":27},"aae330d4-070",[56],{"_key":57,"_type":14,"marks":58,"text":59},"05c67c2f-81e",[],"Universell verstanden und dokumentierbar (OpenAPI\u002FSwagger)",1,"bullet",[],{"_key":64,"_type":10,"children":65,"level":60,"listItem":61,"markDefs":70,"style":27},"581532ac-ce0",[66],{"_key":67,"_type":14,"marks":68,"text":69},"e753f366-550",[],"HTTP-Caching funktioniert out of the box",[],{"_key":72,"_type":10,"children":73,"level":60,"listItem":61,"markDefs":78,"style":27},"ffad54f0-f9e",[74],{"_key":75,"_type":14,"marks":76,"text":77},"d6d3247f-938",[],"Ideal für öffentliche APIs und Microservices",[],{"_key":80,"_type":10,"children":81,"markDefs":86,"style":18},"a9441ba6-e2f",[82],{"_key":83,"_type":14,"marks":84,"text":85},"855500c1-33c",[],"GraphQL: Flexibilität für komplexe UIs",[],{"_key":88,"_type":10,"children":89,"markDefs":94,"style":27},"3a70ced2-b83",[90],{"_key":91,"_type":14,"marks":92,"text":93},"52c09484-280",[],"GraphQL löst das Over-\u002FUnder-Fetching-Problem: Der Client definiert exakt, welche Daten er braucht. Ein einziger Endpoint liefert alles – verschachtelt, gefiltert, paginiert. Ideal für komplexe UIs mit vielen Datenquellen.",[],{"_key":96,"_type":10,"children":97,"markDefs":102,"style":52},"cfc101df-e6d",[98],{"_key":99,"_type":14,"marks":100,"text":101},"47f09b7f-8a2",[],"Stärken von GraphQL:",[],{"_key":104,"_type":10,"children":105,"level":60,"listItem":61,"markDefs":110,"style":27},"2b8333da-122",[106],{"_key":107,"_type":14,"marks":108,"text":109},"672ee019-06d",[],"Kein Over-\u002FUnder-Fetching",[],{"_key":112,"_type":10,"children":113,"level":60,"listItem":61,"markDefs":118,"style":27},"a152eb30-c89",[114],{"_key":115,"_type":14,"marks":116,"text":117},"a25146b0-7e7",[],"Selbstdokumentierend durch Schema und Introspection",[],{"_key":120,"_type":10,"children":121,"level":60,"listItem":61,"markDefs":126,"style":27},"575a5387-9ac",[122],{"_key":123,"_type":14,"marks":124,"text":125},"e1f2a7a5-d76",[],"Ideal für Mobile Apps (minimaler Datentransfer)",[],{"_key":128,"_type":10,"children":129,"level":60,"listItem":61,"markDefs":134,"style":27},"ee064a75-728",[130],{"_key":131,"_type":14,"marks":132,"text":133},"63ac8703-401",[],"Subscriptions für Real-Time-Daten",[],{"_key":136,"_type":10,"children":137,"markDefs":142,"style":18},"17059b0e-33b",[138],{"_key":139,"_type":14,"marks":140,"text":141},"a1c37001-3fe",[],"tRPC: End-to-End-Typsicherheit",[],{"_key":144,"_type":10,"children":145,"markDefs":150,"style":27},"1f7d8afe-5e5",[146],{"_key":147,"_type":14,"marks":148,"text":149},"5a8c1bc8-c89",[],"tRPC eliminiert die Grenze zwischen Frontend und Backend in TypeScript-Monorepos. Keine Code-Generierung, keine Schema-Dateien – der Server definiert Prozeduren und der Client ruft sie typsicher auf. Änderungen am Backend-Typ werden sofort im Frontend sichtbar.",[],{"_key":152,"_type":10,"children":153,"markDefs":158,"style":52},"76761e96-758",[154],{"_key":155,"_type":14,"marks":156,"text":157},"ff14d48f-7de",[],"Stärken von tRPC:",[],{"_key":160,"_type":10,"children":161,"level":60,"listItem":61,"markDefs":166,"style":27},"8f2ccb7d-9e2",[162],{"_key":163,"_type":14,"marks":164,"text":165},"66c32f86-eec",[],"Zero-Config Typsicherheit zwischen Frontend und Backend",[],{"_key":168,"_type":10,"children":169,"level":60,"listItem":61,"markDefs":174,"style":27},"529b2d9a-c27",[170],{"_key":171,"_type":14,"marks":172,"text":173},"e1f9866d-df5",[],"Kein Code-Generator oder Build-Step nötig",[],{"_key":176,"_type":10,"children":177,"level":60,"listItem":61,"markDefs":182,"style":27},"075b7d08-504",[178],{"_key":179,"_type":14,"marks":180,"text":181},"36355541-ca9",[],"Ideal für Full-Stack TypeScript (Next.js, Nuxt)",[],{"_key":184,"_type":10,"children":185,"level":60,"listItem":61,"markDefs":190,"style":27},"f4dcb325-d84",[186],{"_key":187,"_type":14,"marks":188,"text":189},"8baeb0a8-2d0",[],"Exzellente Developer Experience mit Autocomplete",[],{"_key":192,"_type":10,"children":193,"markDefs":198,"style":18},"bf870bce-04a",[194],{"_key":195,"_type":14,"marks":196,"text":197},"67bfa361-3e4",[],"Entscheidungshilfe",[],{"_key":200,"_type":10,"children":201,"level":60,"listItem":61,"markDefs":206,"style":27},"cce6f76d-e34",[202],{"_key":203,"_type":14,"marks":204,"text":205},"c5a2cbe0-db7",[],"REST: Öffentliche API, Microservices, Team mit verschiedenen Sprachen",[],{"_key":208,"_type":10,"children":209,"level":60,"listItem":61,"markDefs":214,"style":27},"95eb5c76-1fc",[210],{"_key":211,"_type":14,"marks":212,"text":213},"e7f19de1-31a",[],"GraphQL: Komplexe UIs, Mobile Apps, viele Datenquellen",[],{"_key":216,"_type":10,"children":217,"level":60,"listItem":61,"markDefs":222,"style":27},"a915ffae-963",[218],{"_key":219,"_type":14,"marks":220,"text":221},"d1478ca7-5f4",[],"tRPC: Full-Stack TypeScript, interne APIs, schnelle Iteration",[],{"_key":224,"_type":10,"children":225,"markDefs":230,"style":18},"e7bf435a-ab7",[226],{"_key":227,"_type":14,"marks":228,"text":229},"4236b928-2bb",[],"Fazit",[],{"_key":232,"_type":10,"children":233,"markDefs":238,"style":27},"656ad4a4-9e6",[234],{"_key":235,"_type":14,"marks":236,"text":237},"cf8b3ab2-868",[],"Es gibt kein bestes Paradigma – nur das richtige für deinen Kontext. In vielen Projekten koexistieren sogar mehrere Ansätze: REST für externe Integrationen, tRPC für interne APIs und GraphQL für das Content-Layer. Wähle pragmatisch, nicht dogmatisch.",[],null,"tutorial",{"alt":242,"asset":243,"credit":246,"creditUrl":247},"Vernetzte Datenströme – API-Architektur",{"_id":244,"url":245},"image-ad5fdf4efcc60ac62d67f9e4cbdeecd90ba64354-1200x673-jpg","https:\u002F\u002Fcdn.sanity.io\u002Fimages\u002Ff1irfjak\u002Fproduction\u002Fad5fdf4efcc60ac62d67f9e4cbdeecd90ba64354-1200x673.jpg","Foto von Taylor Vick auf Unsplash","https:\u002F\u002Funsplash.com\u002F@tvick","REST, GraphQL oder tRPC – welches API-Paradigma passt zu deinem Projekt? Ein praxisnaher Vergleich mit Entscheidungshilfe und Code-Beispielen.",false,"2026-03-05T08:00:00Z",8,"REST, GraphQL oder tRPC? Welches API-Paradigma passt zu deinem Projekt? Praxisnaher Vergleich mit Code-Beispielen und Entscheidungshilfe.","REST vs. GraphQL vs. tRPC: API-Design Vergleich 2026",{"_type":255,"current":256},"slug","api-design-rest-graphql-trpc-vergleich",[258,259,260,261,262,263],"API","REST","GraphQL","tRPC","TypeScript","Backend","API-Design mit REST vs. GraphQL vs. tRPC: Ein praktischer Vergleich"]