GraphQL

Apollo Angular

La solution la plus commune pour consommer des APIs GraphQL est le package Apollo Angular apollo-angular.

Configuration

Profitez des schematics d'apollo-angular !

yarn ng add apollo-angular

A défaut de disposer d'un mécanisme de configuration dynamique de votre application Angular, mettez en place l'URI de votre API GraphQL via les environnements Angular (fichiers environments/environment*.ts)

Plugin IntelliJ / WebStorm

Le plugin GraphQL d'IntelliJ / WebStorm facilite la consommation d'APIs GraphQL grâce à la découverte automatique du schéma puis l'autocomplétion.

https://plugins.jetbrains.com/plugin/8097-js-graphql

Services Query / Mutate

@Injectable({
    providedIn: 'root'
})
export class UserListQuery extends Query<{ users: User[] }> {

    document = gql`query UserList {
        users {
            id
            firstName
            lastName
        }
    }`;

}

Ce service peut ensuite être utilisé ainsi :

this._userListQuery.fetch()
    .subscribe(({data}) => this.userList = data.users);

Le service dispose également d'une méthode watch qui vous permet d'observer les changements en cas d'activation du polling (option pollInterval) ou encore en cas de mise à jour du cache local par exemple.

Factorisation des queries grâce au fragments

Pensez à utiliser les fragments pour factoriser vos queries.

https://www.apollographql.com/docs/angular/features/fragments.html

Dernière mise à jour