GraphQL vs REST: what you need to know

Поділитися
Вставка
  • Опубліковано 13 січ 2025

КОМЕНТАРІ • 62

  • @goldenboy_808
    @goldenboy_808 Рік тому +10

    This is a wonderful video. For months I’ve been using a GraphQL API but I never took a step back to determine WHY I was using it and the advantages of using it over REST API

  • @linonator
    @linonator Рік тому +9

    Definitely a useful video ! Happy I watched this, very clear and concise with no fluf

  • @nomad7317
    @nomad7317 Рік тому +1

    By far, the best video about GraphQL! Thanks a ton!!

  • @philipfwilson
    @philipfwilson Рік тому +2

    Very good clean, quick video.. thanks for the refresh

  • @Warley226
    @Warley226 2 роки тому +2

    I'm Brazilian and I thought the video was fantastic, congratulations.

    • @KodapsAcademy
      @KodapsAcademy  2 роки тому +1

      I’m glad you liked it, thanks for the kind words :)

  • @life-of-prime
    @life-of-prime Місяць тому

    What an excellent explanation

  • @drownwave1150
    @drownwave1150 2 роки тому +2

    Your channel deserves more views.

  • @alexvass
    @alexvass 9 місяців тому

    Thanks

  • @hakberdiorazow232
    @hakberdiorazow232 Рік тому

    This is channel is underrated

  • @MegaWurzelpeter
    @MegaWurzelpeter Рік тому

    Nice and compact comparison.

  • @jefvanderavoirt7363
    @jefvanderavoirt7363 Рік тому +1

    Only 2.9K views? Great video, thanks!

  • @annbui6900
    @annbui6900 Рік тому +1

    Love the details info you provided!!! Keep up with the great work💪🏻

  • @sasanlotfi9828
    @sasanlotfi9828 Рік тому

    Amazing explanation!

  • @kamaleshpramanik7645
    @kamaleshpramanik7645 Місяць тому

    Thank you very much for the video ..

  • @IasonOrlandosOx
    @IasonOrlandosOx 2 роки тому

    Thanks ! very clear and informative

  • @brejohnson9270
    @brejohnson9270 4 місяці тому

    Great video!

  • @stefan5083
    @stefan5083 Рік тому

    Very interesting video!
    A small remark: the sound attached in the explanations (I don't have a term) is a little too loud in tune with the voice.
    Otherwise... I hope the result is worth the effort :)

  • @gauninha12
    @gauninha12 2 роки тому

    Great lesson from Mr. Robot himself hehehe
    Thanks!

  • @dxhelios7902
    @dxhelios7902 Рік тому +1

    @Kodaps Really? Let me count mistakes:
    1. REST and RESTful API and REST web APIs are different things
    2. "where each row represents an object" - why? who decided this? you? Somehow you went from API approach to ORM? And the only way to do ORM is object-row mapping in your context. That is not actually the case.
    3. And you say it loudly REPRESENTATIONAL state transfer. You transfer REPRESENTATION, not the whole state, because, where there are relations, state also includes relations. It is just logic.
    4. REST purpose is not to communicate items, its purpose is to communicate representation of the state of an object. Why you need to add some flavor to interpretation?
    5. Why I should care about relationships if I sometimes care just about property in the state of the object? You present it like it always important to work with relationships. IMHO in mutation scenarios, relationships are less important than just mutating the state of a known object (which ID is already known). I do not need to navigate through relations to update state at all! The thing that you present as advantage are virtual and it is not always important and can be easily covered by REST API and sufficient API management
    6. "We define response shape on a client". This was solved years ago with OData and OData is a standard for REST. Yes, you can define the shape of the response.
    7. Strong typing is viable as much as tooling supports it. For REST APIs we have strong tooling, for GraphQL it is missing.
    So overall I do not see any significant advantage of GraphQL. In some teams differences may play positive role, in others they will make no difference, in others they may introduce unnecessary bottlenecks. I do not see GraphQL as viable alternative to simple RESTful API with API management.

    • @KodapsAcademy
      @KodapsAcademy  Рік тому

      I didn't realise GraphQL and REST could evoke such an emotional response :D

    • @miraclehesed8959
      @miraclehesed8959 Рік тому

      @dxhelios7002. Restful API's is to REST as communication is to communicate. When he made that point, he made it generalizing To API that uses REST protocols in which REST in it's own falls into that category. But I think you're right.

  • @caerulemusic
    @caerulemusic Рік тому +1

    hey dude just some constructive criticism - i think the sound effect volume is too high in the mix. it's distracting. thanks for the vid!

    • @KodapsAcademy
      @KodapsAcademy  Рік тому

      Thanks for the feedback, it's always welcome, and I'm sorry that the video was not quite up to par :)

  • @manofculture8666
    @manofculture8666 Рік тому

    Just trying to really understand GraphQL's benefits. Can't you use REST to do exactly what GraphQL does? Doesn't that just depend on how you've built the API?
    I can build a /user endpoint that takes the required columns as a parameters, and returns only the needed columns and relationships.
    Not sure what GraphQL does that REST can't aside extra documentation. Could someone explain?

    • @KodapsAcademy
      @KodapsAcademy  Рік тому

      In your example, the server (statically) decides which fields to send via the rest API, based on how it is build. In GraphQL the client defines the fields it needs and requests them, which can result in smaller network payloads.

    • @manofculture8666
      @manofculture8666 Рік тому

      @@KodapsAcademy But the client can decide what fields it needs. All I have to do is make the endpoint take, say, a "fields" parameter, and put that in whatever SELECT functionality the backend is using to fetch the data. Then the server will only return the needed data.
      The server doesn't have to return everything.

  • @igboanugwocollins4452
    @igboanugwocollins4452 Рік тому +1

    I like your teaching... You just got a subscriber

    • @KodapsAcademy
      @KodapsAcademy  Рік тому

      Glad you liked it and that I was able to be helpful :)

  • @lydstyl
    @lydstyl Рік тому

    Merci pour tes vidéos de qualité ! Je pense qu'il y a un autre inconvenient à GraphQL : on est, sauf erreur de ma part, obligé (ou presque) d'utiliser une librairie en backend et aussi en frontend comme par exemple Apollo server et Apollo Client. Cela rend moins accessible l'API et rend la maintenance plus compliqué sur le long run (mise à jour d'Apollo par exemple).

    • @KodapsAcademy
      @KodapsAcademy  Рік тому +1

      ET merci pour le compliment :) C'est fortement recommandé côté serveur de passer par une lib, effectivement. Côté client ce n'est pas forcément nécessaire mais ça simplifie la vie :)

    • @lydstyl
      @lydstyl Рік тому

      @@KodapsAcademy Top ! Je pense bientot faire une API GraphQl pour me permettre de gérer la composition d'un portefeuille d'actifs (actions, cryptos, immobilier, etc.) donc d'après ta réponse je devrais pouvoir consommer l'API en vanilla JS sans trop de difficultés par exemple dans un script macro si je veux utiliser le tableur Google Calc. Du coup, si c'est le cas, je ne trouve plus trop d'interet à la classique API REST.

    • @KodapsAcademy
      @KodapsAcademy  Рік тому +1

      J'ai déjà fait des appels à une API GraphQL avec du Lua, donc avec du JS Vanilla ça peut le faire sans problème, il suffit de faire un POST sur le point d'entrée qui va bien (genre /graphql ) en envoyant en body de ta requête (HTTP) la requête GraphQL que tu veux lancer

    • @shhamma
      @shhamma 4 місяці тому +1

      @@lydstylsans soucis je fais du curl / postman

  • @my-curiosity
    @my-curiosity 2 роки тому

    great video!

  • @raheemamer9261
    @raheemamer9261 2 роки тому

    Lovely, thank you

  • @darz_k.
    @darz_k. Рік тому

    Very well done - subbed ;o,

  • @MegaBaellchen
    @MegaBaellchen 2 роки тому

    OpenApi is the defacto standard for rest api documentation

    • @KodapsAcademy
      @KodapsAcademy  2 роки тому +1

      I know, I’ve used it as swagger. But documentation is built into the protocol and is discoverable in GQL, which makes for better tooling.

  • @rodrigofrancescani4223
    @rodrigofrancescani4223 2 роки тому

    I somehow like your energy

  • @mirzasisic
    @mirzasisic Рік тому

    All right, here's the signal for UA-cam's algorithm.

  • @awakeupcall5336
    @awakeupcall5336 Рік тому

    nice

  • @laas29
    @laas29 Рік тому

    graphql + apollo = wasted time

    • @KodapsAcademy
      @KodapsAcademy  Рік тому +1

      Feel free to add some substance to your contribution, e.g. what makes you say so, how do you propose to cache GraphQL requests other than via Apollo, etc. :)

    • @miraclehesed8959
      @miraclehesed8959 Рік тому

      Yes @laas29 why did you say that. Please elaborate more. We need your response.