REST, GraphQL und gRPC: Der große Vergleich // deutsch

Поделиться
HTML-код
  • Опубликовано: 20 окт 2024

Комментарии • 79

  • @thomasspornraft2612
    @thomasspornraft2612 Год назад +34

    Ich wäre an einem Video interessiert wie man APIs richtig baut.

  • @andrejschefer1829
    @andrejschefer1829 Год назад +12

    Moin Golo,
    danke für das Video! Wie immer affengeil!😊
    Es wäre cool so ein Commands-Beispiel in einem GO - Microservice zu sehen! Zum Beispiel für User (registration, athentication etc.)! Vielleicht wäre das eine idee für Live Session. Ich würde mich frohen!

  • @robertlinke6251
    @robertlinke6251 Год назад +6

    Hi Golo,
    einfach danke. Wir waren am überlegen uns mit den genannten Technologien zu beschäftigen, jedoch haben deine Erläuterungen gezeigt, das wir mit unserem momentanen Weg ganz gut auf der Spur sind.
    Ein Livestream über das Thema wäre Super.

  • @yt7042
    @yt7042 Год назад +4

    Danke und ja gern mal an einem praktischen Beispiel in der Praxis zeigen.
    Schöne Woche!

    • @thenativeweb
      @thenativeweb  Год назад

      [gr] Danke für Dein Feedback - und Dir ebenfalls eine schöne Woche 😊

  • @Franitz
    @Franitz Год назад +4

    Guten Morgen Golo,
    dieses Video kommt genau zur richtigen Zeit. Ich habe mich die letzten Wochen genau mit diesem Thema beschäftigt (müssen). Ich wollte eine einfache, performante Lösung zum Sammeln von Maschinendaten. Auch ich war der Meinung das REST diesem CRUD Gedanken folgt. Also danke dafür das Du mich da eines besseren belehrt hast. Mit gRPC habe ich mich intensiver beschäftigt und bin da genau Deiner Meinung - Binärformat igitt-igitt. Und ansonsten ist das ganze Handling viel zu kompliziert. Ich habe mich dann, und Deine Meinung bestätigt mich, für diesen POST/GET Mechanismus entschieden, habe einen ReverseProxy davor gesetzt (selbst in GO geschrieben) und ich bin (bis jetzt) super glücklich. Mal sehen was passiert, wenn 10000 Maschinen ihre Daten im Minutentakt senden . Also vielen Dank für das Video.

  • @normantunger6189
    @normantunger6189 Год назад +2

    Danke für die gute Zusammenfassung. Ich würde mich auch über eine vertiefende Session freuen, speziell das Strukturieren der Controller und Services, fachliche Aspekte und dann über noch Query und Commands.
    Danke an dieser Stelle für die vielen anderen Videos.

    • @thenativeweb
      @thenativeweb  Год назад

      [gr] Vielen Dank für Dein Feedback, und natürlich auch für das Lob 😊

  • @majoulwa
    @majoulwa Год назад +2

    Vielen Dank für dieses großartige Video! Eine super Zusammenfassung zum Thema APIs.
    Was mich besonders fasziniert, ist euer sehr fachlicher Ansatz bei der Erstellung einer API. Es entspricht zeimlich genau der Vorgehensweise, die ich selbst bei der Entwicklung meiner APIs verfolge. Zugegebenermaßen war mein Weg dahin nicht ganz so überlegt und strukturiert wie bei euch. Anfangs habe ich meine APIs auf diese Art und Weise aufgebaut, weil es für mich als Programmier-Neuling einfach logisch erschien und ich REST vielleicht nicht zu 100% verstanden hatte 🫣😂. Doch schon damals fand ich es merkwürdig, einfach SQL "nach draußen weiterzuleiten". Das war für mich nicht der eigentliche Zweck einer API - wohl instiktiv einiges Richtig gemacht 😉.
    Auf lange Sicht hat sich diese Vorgehensweise als äußerst praktisch erwiesen. APIs mit URLs, die so für sich selbst sprechen, sind aus meiner Sicht einfach viel besser lesbar als die "echten" REST-APIs und damit auch für andere Entwickler gut zu verstehen. Ich freue mich auch immer wieder, wenn ich solchen APIs in der freien Wildbahn begegne und es freut mich, dass ihr da anscheinend ähnlich tickt. 👍😊

    • @thenativeweb
      @thenativeweb  Год назад

      [gr] Das hört sich echt gut an, und ich denke, Du kannst da echt froh sein, dass Du (mehr oder weniger durch Zufall) um REST und diese Denkweise herumgekommen bist. Natürlich ist es manchmal hilfreich, aber es macht auch vieles kaputt, und der Schaden durch REST ist IMHO viel höher als der Nutzen.

  • @massimomaier5699
    @massimomaier5699 Год назад +6

    wäre an einem Lifestream zur Architektur einer fachbezogenen API sehr interessiert. graphql klingt in der Forschung richtig gut, insbesondere, wenn man zwischen verschiedenen Datenbanken Beziehungen herstellen könnte, will ich mir mal anschauen. Danke für das tolle Video :) ich finde die Qualität eurer Auseinandersetzung mit Themen immer wieder erschreckend gut und motivierend. danke.

  • @Phoenix9118
    @Phoenix9118 Год назад +1

    Vielen Dank für den direkten Vergleich und die Einblicke in deine/euren Erfahrungen mit diesen API-Technologien. CQRS ist auch eine sehr feine Sache. Ich finde jedoch, dass die Umsetzung über HTTP/JSON genau dem REST-Ansatz entspricht: die Ressourcen sind die beschriebenen Commands und Queries und via HATEOAS ergeben sich die fachlich nächsten Commands und Queries. Aber wir uns einig: REST funktioniert am besten mit einem fachlich getriebenem Prozess als mit Daten getriebenem CRUD 🙂

  • @gossi
    @gossi Год назад +2

    Schön erklärt und dank der englischen version, kann das auch direkt weiter an die Kollegen, danke dir.
    Ich baue JSON-over-HTTP APIs auch schon seit längerem mit POST für mutations und GET für reading operations. Das funktioniert sehr gut, muss ich sagen - auch wenn es bei den technisch verliebten Entwicklern immer wieder auf Verwunderung stößt, dass man nicht einfach einen PATCH anbieten soll - aber da kann ich ja nun das video verlinken :)
    Ich glaube, das JSON-over-HTTP mit POST for mutations und GET for read braucht allerdings einen besseren Namen. Sonst befindet man sich im Meeting über API Tech Diskussionen und spricht über REST (aka. CORS), GraphQL, GRPC und "JSON-over-HTTP mit POST und GET" - das passt nicht so ins Muster ;) und macht es schwieriger darüber zu sprechen, denn sonst bleibt einem nur "REST" als Terminology, was so ziemlich vieles Bedeuten kann (u.a. auch JSON:API) und am Ende keiner mehr weiß, was der Gesprächspartner mit REST meint.

  • @jevylein
    @jevylein 5 месяцев назад

    Danke für die ganze Aufschlüsselung. Ich baue gerade für mich eine API auf dem Slim-Framework
    Angefangen hatte ich, wie ich es mal in meiner alten Firma mit Laravel gelernt hatte mit REST und damit CRUD.
    Eure Videos und Livestreams bringen mich aber zum umdenken und ich versuche diese API mal bewusst fachlich aufzuziehen.
    Also wie beschrieben Routen nur get für Queries und post für Commands. Wenn Gruppierungen eingezogen werden, dann nur nach fachlichen Bereichen und nicht nach Tabellennamen.
    Mal schauen wie gut ich damit zurecht komme.
    Macht weiter so, eure Video sind echt goldwert

  • @Trasherk123
    @Trasherk123 Год назад +3

    Genau mit diesem Thema, habe ich mich vor 2 Wochen beschäftigt. Ich bin beim gleichen Ergebnis gelandet. Du hast jedoch nichts über OpenAPI / Swagger erwähnt. Ich finde die Dokumentation einer REST, macht eine gute API aus.

  • @cd1131
    @cd1131 Год назад

    Super erklärt, volle Zustimmung . Das beste an „deiner Methode“ (wir machen es fast genauso): Sie kommt mit nur einem generischen Controller bzw. Endpunkt aus!
    Dieser kümmert sich um Serialisierung und schiebt den Command/die Query in einen Bus.
    Als EntwicklerIn muss ich also wirklich nur einen Command oder eine Query in einem fachlichen Modul/Projekt etc. schreiben, um der API etwas neues beizubringen. 😊

  • @DIGITUAR
    @DIGITUAR Год назад +1

    Ein Livestream über einen fachbezogenen API wäre wirklich super

    • @thenativeweb
      @thenativeweb  Год назад +1

      [gr] Das werden wir machen - der erste Livestream nach der (Livestream-)Sommerpause wird sich um dieses Thema drehen 😊

  • @marinaegner
    @marinaegner Год назад +1

    Vielen Dank für das tolle und lehrreiche Video!
    Das Video kommt genau zur rechten Zeit! 😃
    Ich denke aktuell über die Umsetzung einer API nach und hatte mir überlegt, ob ich dem REST Ansatz folgen soll, weil mir schien es so, als wenn dass der gängige Weg wäre. Wobei ich ursprünglich eigentlich viel mehr etwas in der Richtung der Empfehlung umgesetzt hätte.
    Nach dem Video, finde ich euren Ansatz eigentlich erheblich besser 🙂

    • @thenativeweb
      @thenativeweb  Год назад +1

      [gr] Das freut mich sehr, dass das Video zum richtigen Zeitpunkt kam 😊
      Und viel Erfolg bei der Umsetzung!

    • @marinaegner
      @marinaegner Год назад +1

      @@thenativeweb Danke! 😊

  • @ScriptRaccoon
    @ScriptRaccoon Год назад +1

    Sehr interessante Sichtweise!
    Ich kann dazu inhaltlich wenig beitragen, aber mein Eindruck ist, dass die API Endpunkte in SvelteKit-Projekten genau dieser fachlicher Ausrichtung entsprechen, die du im Video beschrieben hast. Aber das betrifft auch nur innerhalb einer Anwendung genutzte APIs.
    Und ja ein längeres Video zum Aufbau von APIs wäre sehr interessant!

  • @bish0p1992
    @bish0p1992 Год назад

    Vielen Dank für die prägnanten Definitionen und Einordnungen der Technologien.
    Ich bin neu in der Webentwicklung und versuche mich gerade in die Thematik einzuarbeiten, aber nach dem Lesen diverser Blog Einträge, Diskussionen und dem überfliegen von Dokumentation war ich häufig genau so schlau wie vorher ohne die grundlegenden Funktionsweisen durchblickt zu haben, aber bei deiner Erklärung wurden on Point viele meiner Fragen beantwortet :)

  • @janbohlen8488
    @janbohlen8488 Год назад +2

    Ich gebe Dir mal wieder bei allem Recht. Super erklärt und argumentiert.

  • @devchannel5232
    @devchannel5232 Год назад +1

    Super Video. Erst neulich habe ich mich umfangreich über alle Vorteile und Nachteile informiert xD

  • @DJTechnostyler
    @DJTechnostyler Год назад +1

    Voll cool, so wie ihr eure APIs schreibt, so hab ich mir das auch bei meinem Minwork gedacht :D Schön, dass wir da einer Meinung sind. Sehe das bei REST so, dass es schön einfach ist, aber man kann es auch schön einfach verhunzen, weil REST an sich ja erst mal gar nicht so viel vorgibt. Außerdem ist das mit der Doku auch immer so eine sache, weil man REST ganz schnell sehr dynamisch aufbaut. Etwas dynamisches lässt sich nur schwer dokumentieren. GraphQL finde ich an sich gar nicht so verkehrt. Vor allem, wenn man sowas wie type-graphql verwendet, was einen Die Sache deutlich vereinfacht. Zu gRPC kann ich leider nix sagen, klingt aber erst mal auch ganz gut, nur halte ich von code generieren nix. Wenn dann kann aus dem Code etwas generiert werden, wie z.B. Typinformationen. So mache ich das. Ich hole die Typen von TypeScript in die Laufzeit hinein, sodass ich dann die API zumindest was die Typen angeht absichern kann. Zugriffsrechte sind dann wieder ein anderes Thema.

  • @wolfwalterjever
    @wolfwalterjever Год назад +3

    Moin Golo,
    noch mehr gehypt scheint ja in letzer Zeit tRPC zu sein. Gilt das gleiche wie für gRPC?

  • @onur7183
    @onur7183 8 месяцев назад

    Interessant, eure Art Apis zu bauen, habe ich mal als Student "frei nach Kopf" genauso implementiert und wurde dann von meinem Prof kritisiert, da es ja REST gibt und das kein Industriestandard sein :P Damals kannte ich REST noch gar nicht. Welch Zufall, sehr interessant

  • @davidelsner9391
    @davidelsner9391 Год назад +2

    Ich finde die Idee mit dem "fachlichen HTTP" sehr gut und verständlich.
    Die Ressourcen werden aber weiterhin wie in REST in der Url adressiert? Es gäbe also schon noch mehr Routen als eine Get und eine einzelne Post Route mit allen Infos?
    Um etwas zu löschen würdet ihr einen Post verwenden?

    • @thenativeweb
      @thenativeweb  Год назад +1

      [gr] Ja, es gibt schon noch mehr Routen als nur zwei, aber eben nur noch zwei Typen: POST zum Schreiben, GET zum Lesen.
      Und ja, um etwas zu löschen, würden wir ein POST verwenden. Nur hieße diese Route dann nicht "Delete XYZ", weil es ja nicht um's Löschen geht - das ist ja nur der technische Effekt. Die Frage ist: WARUM willst Du löschen? Was ist die fachliche Intention?
      Um es mal am Beispiel einer Todo-Liste zu machen, auf der Du Aufgaben notieren, editieren und abhaken kannst. Dann hättest Du zum Beispiel:
      POST /note-todo
      POST /edit-todo
      POST /tick-off-todo
      Und als Queries:
      GET /remaining-todos
      GET /ticked-off-todos
      GET /all-todos

    • @davidelsner9391
      @davidelsner9391 Год назад +1

      @@thenativeweb Nunja, löschen ist ja durchaus öfter mal auch etwas fachliches. Zb ein Item aus dem Warenkorb löschen..hier könnte die Route durchaus delete heißen.
      Danke für die Erklärung, das ist sehr hilfreich.

    • @thenativeweb
      @thenativeweb  Год назад +1

      @@davidelsner9391 [gr] Du löschst ein Item nicht aus dem Warenkorb. Du legst es zurück. Oder Du entnimmst es. Aber Du löschst es nicht.
      Überleg mal, wenn Du im Supermarkt stehst und etwas im Einkaufswagen hast, was Du dann doch nicht nehmen möchtest: „Löschst“ Du das dann? 😉

    • @davidelsner9391
      @davidelsner9391 Год назад +1

      @@thenativeweb
      Das ist natürlich ein Punkt :)

  • @bussinger1985
    @bussinger1985 Год назад +1

    Guten Morgen Golo,
    in zwei Monaten starte ich meine Diplomarbeit, in der ich eine iOS-App entwickeln möchte. Die App soll eine von mir selbst programmierte GO-API verwenden, die auf eine MSSQL-Datenbank zugreift. Da ich bisher noch keine API programmiert habe, wäre ein Live-Stream von dir dazu für mich unglaublich hilfreich.
    Danke im Voraus für deine Unterstützung! :)

  • @simongassenschmidt7995
    @simongassenschmidt7995 Год назад

    Ja, euer Konzept nochmals genauer. Fehlermeldungen packt ihr je nach dem in den JSON-Respond?

  • @bastianwegge
    @bastianwegge Год назад

    Hey Golo,
    erst mal vielen Dank für das Video, definitiv mal wieder was gelernt.
    Ein bisschen konstruktives Feedback:
    Eure Darstellung von GraphQL ist meiner Meinung nach etwas eindimensional. "Dass man auf der Server-Seite nie so sehr vorhersehen kann, was man für Abfragen bekommt" stimmt einfach nicht, weil ich ja (egal ob design-first oder code-first) definitiv die Inputs und ihre Typen vorgeben muss, das funktioniert also quasi wie bei REST. "Es ist leichter in performance-kritische Abfragen zu laufen" ist zwar richtig, das gilt aber für jede Implementierung, ist mir also etwas zu generisch und in dem Video zu sehr Fingerpointing auf GraphQL. Und für solche Probleme gibt's ja auch vorgefertigte Konzepte, "data loaders" bei GraphQL zum Beispiel.
    Again: Sehr gutes Video, nur bei GraphQL evlt. etwas mehr Recherche investieren. Stichwort "Hasura" ist zum Beispiel auch stark im Kommen.

  • @StefanStrobl
    @StefanStrobl Год назад +1

    Moin Golo, schöne Zusammenfassung des Themas. Den Wunsch nach einem Livestream kann ich nur unterstützen.
    Aber ein anderes Thema. Nervt dich nicht das globale Menü am Mac bei deinem großen Monitor? Ich habe ein ähnliches Set-up und das ist so ein Punkt, mit dem ich nicht zufrieden bin. Wie ist denn dein Workflow?

    • @thenativeweb
      @thenativeweb  Год назад +1

      [gr] Danke für Deinen Kommentar und das Feedback 😊
      Was Deine Frage angeht: Nö, das stört mich nicht. Ich brauche die Menüleiste aber auch so gut wie nie (höchstens rechts oben die Icons und die Uhrueit).
      Das meiste läuft bei mir über Tastenkombinationen, weshalb ich das Menü so gut wie nie öffnen muss.

    • @StefanStrobl
      @StefanStrobl Год назад

      @@thenativeweb am liebsten wäre mir Alfred könnte sich da einklinken … aber er geht ja. Ist nur Jammern auf hohem Niveau ;)

  • @f4stfox637
    @f4stfox637 Год назад +1

    Danke für das Video, sehr informativ!!!

  • @T0kwe
    @T0kwe Год назад +2

    Kleine Anmerkung zu GraphQL: Queries sind HTTP GET's und Mutations sind HTTP POST's.
    Keine Technologie schützt einen vor schlechtem API design und sorgt dafür, dass die Fachlichkeit die Entwicklung treibt. Darauf muss man als Team immer selbst achten. Ich glaube mit allen 3 Technologien kann man super fachliche APIs entwickeln, aber viele nutzen die Möglichkeiten der Technologie falsch. Dann wird auf einmal fachliche Logik in den Client verschoben, die API führt nur noch Datenbankoperationen aus und man hat gar keinen Überblick mehr, wer was wo macht. Oder es wird ein "Schema First" Ansatz gefahren und auf einmal sind die Daten im Fokus anstatt der Fachlichkeit.
    Ich persönlich entwickle viel nativ mobile und deswegen reizt mich persönlich das feste Protokoll im Bezug auf Pagination, Error Handling, Status Codes, Discoveribility, Federated Requests und Code Generation von GraphQL am meisten. Man muss aber aufpassen, dass man den fachlichen Fokus nicht verliert.

    • @daheck81
      @daheck81 Год назад

      Bei GraphQL sind alles http POST requests

    • @T0kwe
      @T0kwe Год назад +1

      @@daheck81 Nicht mehr. Der Standard lässt auch HTTP GET für Queries zu

  • @onkelbob3267
    @onkelbob3267 Год назад

    GraphQL mit Hasura ist ein No-Brainer. gRPC ist denkbar auch für WebRTC (P2P) Lösungen. Golo, nimm doch bitte in Zukunft auch etwas differenziertere Überlegungen in deine Urteile auf. Danke LG

  • @customraspi
    @customraspi Год назад

    Die Behauptung, wenn man CRUD macht, kann man statt REST dem User auch direkt SQL geben, halte ich für zu kurz gedacht. Die REST API setzt nämlich die Zugriffskontrolle um, die man in den meisten SQL-Datenbanken nicht so feingranular in SQL abbilden kann und auch die Fehlermeldungen nicht so passend sind.

  • @lameshithead
    @lameshithead 7 месяцев назад

    ich schreibe gerade mein eigenes ui framework, das in dei cloud deployed, im webbrowser läuft und als native app gebuildet werden kann und jede sprache im browser direkt übers backend supported. also für mich ist das kein ausnahmefall sondern die basis für meine arbeit. wieso sollte ich denn json benutzen, wenn ich auch direkt binärfiles nehmen kann

  • @florenzoaron2149
    @florenzoaron2149 Год назад +1

    Ich habe solche Überlegungen schon länger. Das Video fast es wirklich sehr gut zusammen.
    Die Frage ist jedoch wie man seine Kollegen davon überzeugt bekommt? Die meisten lieben ihre Crud APIs. Da kann man so schön Endpunkte sparen. 🙄

    • @thenativeweb
      @thenativeweb  Год назад

      [gr] Das ist leider wirklich eine sehr, sehr gute Frage … es ist generell nicht einfach, Leute von den Nachteilen von CRUD zu überzeugen. Das betrifft nicht nur Entwicklung, auch das Management … sagen wir es mal so: Es ist mühsam 😉

  • @michaelrichter9408
    @michaelrichter9408 Год назад +1

    Super Video, ich sehe das sehr ähnlich.

  • @uNki23
    @uNki23 Год назад

    Ich mache das schon seit fast 10 Jahren so, bin aber immer mehr in einen Mischmasch übergegangen, zB wo ein query auch als POST abgebildet wird, wenn ich zB mehrere query Parameter haben und lieber den Body anstatt URL params nutzen möchte.
    Wir nennen es intern oft RESTless API oder RPC style HTTP API ☺️

  • @Beolthorn
    @Beolthorn Год назад +1

    Wie findet ihr trpc, wenn man komplett im js/ts Universum unterwegs ist?

    • @geeksy2278
      @geeksy2278 Год назад

      trpc ist ganz nützlich, aber in erster Linie eine Bibliothek. Denke damit fällt das nicht in die Kategorie Rest, Graphql, grpc.

    • @Beolthorn
      @Beolthorn Год назад +1

      Ist graphql im Endeffekt nicht auch nur eine Bibliothek, wo man die Struktur vorher definiert?
      trpc ist ja von der Struktur ähnlich wie grpc, bloß über http und du bist auf js/ts limitiert

    • @geeksy2278
      @geeksy2278 Год назад

      @@Beolthorn Tatsächlich ist graphql eine Abfragesprache, genau wie SQL. Es gibt natürlich diverse Bibliotheken in vielen Programmiersprachen, die graphql implementieren.
      Ja ich denke genau die unterschiede sind es, die es schwierig macht tRPC und gRPC zu vergleichen. Gerade weil tRPC Typescript only ist. Meiner Erfahrung nach macht tRPC da sind wo ich ein Monorepo habe und mein Backend und Frontend typisiert kommunizieren lassen will. Gerade REST, Graphql und gRPC richtet sich ja an verteilte Systeme. Meine Erfahrung in tRPC ist allerdings auch relativ begrenzt, als kleiner Disclaimer.

    • @FunctionGermany
      @FunctionGermany Год назад

      @@geeksy2278 tRPC spezifiziert auch ein schema, das es ja selbst zur kommunikation benutzt. du kannst zwar deine router und procedures so zusammenstellen, wie du willst, aber es folgt trotzdem einem pattern. dazu kommt, dass procedures entweder querys, mutations, oder subscriptions/observer sind. wieder ein pattern.
      wenn tRPC "nur eine library" wäre, dürfte es sich von anderen HTTP clients wie axios oder GOT nicht unterscheiden.

    • @geeksy2278
      @geeksy2278 Год назад

      @@FunctionGermany Ich glaube das Zitat von der tRPC Website fasst ganz gut zusammen was ich meine:
      "Since GraphQL is designed as a language-agnostic specification for implementing APIs, it doesn't take full advantage of the power of a language like TypeScript.
      If your project is built with full-stack TypeScript, you can share types directly between your client and server, without relying on code generation."
      Dahinter steckt eben keine offenes Protokoll. Die Bibliothek ist speziell für Typescript-Apps entwickelt worden.

  • @nilsandresen97
    @nilsandresen97 Год назад +1

    Für alle die Typescript im Frontend und im Backend zusammen nutzen ist tRpc einen Blick wert.

  • @marcello4258
    @marcello4258 Год назад

    Ok gut.. als du sagtest kein rest war ich skeptisch. Aber sicherlich weil ich den Begriff anders interpretiere.. die fachliche Definition mit Post/get die bilde ich auch so ab, allerdings sagte ich dazu auch REST and CRUD - sicherlich fälschlicherweise, dennoch läuft ja im backend dennoch CRUD ab, auch wenn ich es implementiere allerdings nicht explizit vom Client sondern in der business(Server) Logik. Weiterhin arbeite ich idR mit store procedures also have im backend nur die Logik die den Fall abbildet

  • @cs_devel
    @cs_devel Год назад

    Ich finde GraphQL in Verbindung mit Nest.JS und Prisma eine sehr gute Lösung. GraphQL definiert allerdings die maximale Ausbaustufe einer Query und ist performancetechnisch sehr gut. Sicherlich braucht es etwas Zeit für die Vorbereitung, aber der große Vorteil, nicht für jede kleine Abwandlung einer Abfrage, einen neuen Einstiegspunkt definieren zu müssen, ist einfach unschlagbar.

  • @foo0815
    @foo0815 Год назад

    Interessant wäre noch, wie man am besten mit versionierten APIs umgeht, ohne total wahnsinnig zu werden...

  • @axadkrk
    @axadkrk Год назад

    Bei Typescript gibt es noch tRPC

  • @iWantToDetonate
    @iWantToDetonate 2 месяца назад +1

    Mir fehlt SOAP in der Liste.... ;D

  • @lameshithead
    @lameshithead 7 месяцев назад

    aber digger du vergisst hier ja auch das grpc auch gleichzeitg als service mesh benutzt werden kann. macht braucht halt einfach nur geile tools für grpc, aber es ist halt viel geiler als diese verdammten cors headers zu setzen, json zu senden und in jeder sprache einen server aufzumachen den du wieder neu programmieren musst, aio,flask etc. außerdem ist grpc streaming auch viel fortschirittlicher als websocket, siehe improbable

  • @FyyMyy
    @FyyMyy Год назад +1

    ts frontend + ts backend = trpc ^ ddd ✅

  • @FunctionGermany
    @FunctionGermany Год назад +1

    bin grad mit dem REST teil des videos durch. ich stimme dir bei den punkten zu REST zu, wenn wir über eine extern konsumierte API reden. wenn ich aber eine API in erster linie für das eigene frontend baue, halte ich eine dünne CRUD/REST schicht für sehr gut, da ich damit das system nicht mit mehr informationen anreicher als nötig. das geht natürlich nicht immer, aber manchmal hab ich halt ne einfache ressource, die ich zB per spring RestResource annotation auf das repository publishen und benutzen kann ohne einen controller zu schreiben.

  • @marcello4258
    @marcello4258 Год назад

    Er sagte Soap ist tot 😂😂😂