Bibliothèques GraphQL Kotlin : aperçu complet pour les développeurs backend

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Bibliothèque GraphQL Kotlin : guide complet pour travailler avec les API



GraphQL est un langage de requête pour les API qui permet aux clients de demander uniquement les données dont ils ont réellement besoin. Dans l'écosystème Kotlin, il existe plusieurs bibliothèques puissantes pour travailler avec GraphQL. Dans cet article, nous allons détailler trois bibliothèques principales : graphql-kotlin, Apollo Kotlin et KGraphQL, et montrer des exemples de leur utilisation.



1. graphql-kotlin — bibliothèque serveur d'Expedia Group



graphql-kotlin est la bibliothèque la plus populaire pour créer des serveurs GraphQL en Kotlin. Elle prend entièrement en charge toutes les fonctionnalités de la spécification GraphQL et s'intègre parfaitement avec les frameworks Spring Boot, Ktor et Micronaut.



Installation et configuration



Pour ajouter la bibliothèque, ajoutez la dépendance dans build.gradle.kts :



dependencies {    // Bibliothèque principale    implementation("com.expediagroup:graphql-kotlin-spring-server:6.5.0")        // Pour la génération de schéma à partir d'annotations    implementation("com.expediagroup:graphql-kotlin-schema-generator:6.5.0")}


Création d'une API GraphQL simple



Définissons le modèle de données et le resolver pour les requêtes :



// Modèle de donnéesdata class User(val id: Int, val name: String, val email: String)

// Query resolverclass UserQuery : Query { fun getUser(id: Int): User? { return users.find { it.id == id } } companion object { val users = listOf( User(1, "Anna Petrova", "anna@example.com"), User(2, "Ivan Sidorov", "ivan@example.com") ) }}

// Mutation resolverclass UserMutation : Mutation { fun createUser(name: String, email: String): User { val newUser = User(users.size + 1, name, email) users.add(newUser) return newUser }}


Enregistrons maintenant les resolvers dans la configuration Spring Boot :



@Configurationclass GraphQLConfig {    @Bean    fun userQuery(): UserQuery = UserQuery()        @Bean    fun userMutation(): UserMutation = UserMutation()}


Requêtes à l'API



Exemple de requête GraphQL :



query {  getUser(id: 1) {    name    email  }}


La réponse contiendra uniquement les champs demandés :



{  "data": {    "getUser": {      "name": "Anna Petrova",      "email": "anna@example.com"    }  }}


2. Apollo Kotlin — bibliothèque cliente pour Android et JVM



Apollo Kotlin est un puissant client GraphQL, développé spécialement pour Kotlin et Android. Il fournit des requêtes typées et une génération automatique de code.



Ajout de la bibliothèque



dependencies {    implementation("com.apollographql.apollo:apollo-runtime:3.8.0")    implementation("com.apollographql.apollo:apollo-normalized-cache-sqlite:3.8.0")}


Création d'une requête



Définissez d'abord la requête GraphQL dans le fichier GetUserQuery.graphql :



query GetUser($id: Int!) {  getUser(id: $id) {    id    name    email  }}


Utilisez ensuite le code généré en Kotlin :



val apolloClient = ApolloClient.builder()    .serverUrl("http://localhost:8080/graphql")    .build()

suspend fun fetchUser(userId: Int): User? { val response = apolloClient .query(GetUserQuery(userId)) .execute() return response.data?.getUser?.let { user -> User( id = user.id, name = user.name, email = user.email ) }}


3. KGraphQL — bibliothèque légère pour Ktor



KGraphQL est une bibliothèque minimaliste pour créer des serveurs GraphQL dans les applications Ktor. Elle

Recommendations