🚀
developpement

Apollo

Plateforme complète pour construire et consommer des API GraphQL.

Definition

Apollo est un ecosysteme complet d'outils pour construire, gerer et consommer des API GraphQL. C'est la solution GraphQL la plus populaire, utilisee par des entreprises comme Airbnb, Expedia et The New York Times.

Apollo couvre les deux cotes : le client (Apollo Client) et le serveur (Apollo Server).

Apollo Client

Librairie JavaScript pour consommer des API GraphQL avec un cache intelligent integre.

import { ApolloClient, InMemoryCache, gql, useQuery } from '@apollo/client';

// Configuration
const client = new ApolloClient({
  uri: 'https://api.exemple.com/graphql',
  cache: new InMemoryCache(),
});

// Hook React
function UserProfile({ userId }) {
  const { data, loading, error } = useQuery(gql\`
    query GetUser($id: ID!) {
      user(id: $id) {
        name
        email
        posts { title createdAt }
      }
    }
  \`, { variables: { id: userId } });

  if (loading) return <Spinner />;
  if (error) return <Error message={error.message} />;
  return <Profile user={data.user} />;
}

Cache intelligent

Apollo Client maintient un cache normalise en memoire. Quand une mutation modifie un objet, toutes les queries qui referencent cet objet sont automatiquement mises a jour.

Apollo Server

Serveur GraphQL pour Node.js :

import { ApolloServer } from '@apollo/server';

const typeDefs = \`
  type User {
    id: ID!
    name: String!
    email: String!
    posts: [Post!]!
  }
  type Post { id: ID!; title: String!; createdAt: String! }
  type Query { user(id: ID!): User; users: [User!]! }
  type Mutation { createUser(name: String!, email: String!): User! }
\`;

const resolvers = {
  Query: {
    user: (_, { id }) => db.users.findById(id),
    users: () => db.users.findAll(),
  },
  User: {
    posts: (user) => db.posts.findByUserId(user.id),
  },
};

const server = new ApolloServer({ typeDefs, resolvers });

Apollo Studio

Plateforme cloud pour gerer les API GraphQL :

  • Schema Registry : versionnage du schema
  • Explorer : IDE GraphQL en ligne
  • Metrics : performance des resolvers
  • Alerts : notifications sur les erreurs

Apollo vs alternatives

Apollo urql Relay
Cache Normalise, puissant Simple ou normalise Normalise, strict
Taille ~33 Ko ~8 Ko ~25 Ko
Complexite Moyenne Faible Elevee
Ecosysteme Le plus large Croissant Facebook
Cas ideal Production, equipe Projets simples Apps Facebook-scale

Besoin d'aide technique ?

Decrivez votre projet pour des conseils personnalises par nos experts.

Recevoir des conseils

Questions frequentes

Apollo Client est-il necessaire pour utiliser GraphQL ?
Non. Vous pouvez utiliser fetch() ou axios avec GraphQL. Mais Apollo Client apporte le cache normalise, le loading state, l'error handling et l'optimistic UI, ce qui simplifie enormement le developpement.
Apollo ou TanStack Query (React Query) ?
Pour une API GraphQL, Apollo Client est plus adapte (cache normalise par type). Pour une API REST ou un mix REST+GraphQL, TanStack Query est plus flexible et plus leger.
GraphQL est-il sur-ingenierie pour un petit projet ?
Souvent oui. Pour un petit projet avec quelques endpoints, REST est plus simple. GraphQL brille quand vous avez de nombreux types de donnees lies et des besoins de requetes variables (mobile, web, partenaires).

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.