Abstrakt. GraphQL är ett frågespråk och därefter-baserat paradigm för att implementera webbprogrammeringsgränssnitt (API) för klient-serverinteraktioner. Med hjälp av GraphQL definierar klienter exakta, inbäddade datakrav i maskinskrivna frågor, som löses av servrar mot (eventuellt flera) backend-system, som databaser, objektlagringar eller andra API:er. Kunderna får endast de uppgifter de bryr sig om, i en enda begäran. Leverantörer av befintliga REST (liknande) API:er måste dock införa ytterligare GraphQL-gränssnitt för att möjliggöra dessa fördelar. Vi bedömer här möjligheten att automatiskt generera GraphQL omslag för befintliga REST (liknande) API:er. Ett omslag, när du tar emot GraphQL-frågor, översätter dem till förfrågningar mot målet API. Vi diskuterar utmaningarna för att skapa sådana omslag, inklusive att hantera data sanitet, autentisering, eller hantera bo frågor. Vi presenterar dessutom ett prototypiskt genomförande av OASGraph. OASGraph tar som indata en OpenAPI specifikation (OAS) som beskriver en befintlig REST (-liknande) webb API och genererar en GraphQL omslag för det. Vi utvärderar OASGraph genom att köra det, liksom en befintlig öppen källkod alternativ, mot 959 offentligt tillgängliga OAS. Detta experiment visar att OASGraph överträffar det befintliga alternativet och kan skapa en GraphQL omslag för 89,5% av API:erna - dock, med begränsningar i många fall. En efterföljande analys av fel och varningar orsakade av OASGraph visar att saknade eller tvetydiga uppgifter i den bedömda OAS hindrar att skapa kompletta omslag. Slutligen presenterar vi ett användningsfall av IBM Watson Language Translator API som visar att små förändringar i en OAS tillåter OASGraph att generera mer idiomatic och mer uttrycksfulla GraphQL omslag.
Wittern m.fl. REF föreslår ett verktyg för att generera GraphQL-omslag från REST-liknande API:er med OpenAPI-specifikation (OAS).
Generating GraphQL-Wrappers for REST(-like) APIs
{'venue': "In: Mikkonen T., Klamma R., Hern\\'andez J. (eds) Web Engineering. ICWE 2018. Lecture Notes in Computer Science, vol 10845. Springer, Cham", 'journal': None, 'mag_field_of_study': ['Computer Science']}