Jakob Bendsen & Milos Jaranovic: GraphQL vs. OData

Se video

Optaget på Faglig Fredag hos Lund&Bendsen A/S, den 04/03-2022.

Abstract:
I dette oplæg kigger Milos og Jakob på 2 alternativer til REST; nemlig OData og GraphQL, og vi slutter af med en fælles diskussion af de 2 teknologier.

Del 1: Milos fortæller om OData
OData er oprindelig introduceret af Microsoft i 2007 og standardiseret og overtaget af OASIS i 2014. OData er en protokol bygget på toppen af standard protokoller som HTTP, JSON og ATOM, og som stadigvæk udnytter REST-arkitekturstilen. OData advokerer for en generisk model for alle REST API’er, som samtidig løser nogle af de centrale udfordringer og problem ved REST-arkitekturstilen, såsom filtrering, predicates og at klienten ikke selv kan bestemme hvor mange associerede data den modtager fra serveren. I oplægget gennemgår Milos de forskellige dele af OData protokollen og viser konkrete eksempler på OData-api’er, klient- og server-kode.

Del 2: Jakob fortæller om GraphQL
GraphQL stammer fra Facebook, som har brugt det siden 2012 og gjorde det offentligt tilgængeligt i 2015 og siden da har GraphQL vundet betydelig udbredelse som en integrationsteknologi der kan supplere eller erstatte REST API’er. GraphQL løser det centrale problem ved REST (og Soap), at klienten ikke selv kan bestemme hvor mange associerede data den modtager fra serveren. Her tilbyder GraphQL en elegant løsning i form af en generel mekanisme hvor en server kan udstille en graf (en samling af associerede objekter), som klienter kan undersøge, læse, opdatere og abonnere på via HTTP og JSON. I oplægget gennemgår Jakob de forskellige dele af GraphQL-teknologien og viser konkrete eksempler på GraphQL-api’er, klient- og server-kode.

Del 3: Diskussion og problematisering
I denne del forsøger vi i plenum at problematisere og belyse GraphQL og ODatas tilgang til integration, som på mange måder minder om hinanden. Er det fx godt med et generisk interface? Er GraphQL/OData en erstatning for REST eller et supplement? Er der forskellige brugsscenarier hvor én af teknologierne er at foretrække? Og hvordan virker teknologierne i praksis?

Jakob Bendsen Profil

Jakob Bendsen

Chefkonsulent | Partner

Jakob har arbejdet professionelt med it og softwareudvikling siden 1990’erne. Java og JVM frameworks (Java EE, Spring…) er hans hjemmebane, men også cloud, virtualisering og integrationteknologi (fx REST og GraphQL) er i værktøjskassen. Han er specialist indenfor facilitering af effektive udviklingsprocesser og enterprisearkitektur. 20+ års erfaring med undervisning, mentoring og rådgivning indenfor softwareudvikling i mange brancher, og altid med øjet rettet mod samspillet mellem forretning og IT.