Chargement

Votre premier appel API

Leçon 25 min
Chargement

Votre premier appel API

Dire bonjour à Claude peut vous réchauffer le cœur, mais ce n'est pas vraiment utile. Dans cette leçon, nous allons envoyer à Claude quelque chose de concret et obtenir en retour une analyse structurée — en un peu moins de 20 lignes de code.

Préparez votre environnement

Pour commencer, récupérez une clé API sur platform.claude.com. Avant votre premier appel API, vérifiez que vous disposez de crédit sur la page Facturation de la Claude Console. Si ce n'est pas le cas, ajoutez-y du crédit.

La boîte de dialogue de la Claude Console affichant une clé API nouvellement créée, avec un bouton Copy key et un avertissement indiquant que la clé ne sera plus visible par la suite

Prenez la clé API et stockez-la dans un fichier .env.local afin qu'elle reste en dehors de votre système de contrôle de version. Coder en dur des clés dans des fichiers source est la principale manière dont elles finissent par fuiter sur GitHub — conservez-les plutôt dans des fichiers d'environnement.

Ensuite, installez le SDK :

npm install @anthropic-ai/sdk

L'anatomie d'une requête

Chaque appel API passe par la fonction messages.create. Vous spécifiez trois éléments :

  • Un modèle — quel modèle Claude traite la requête
  • Une limite de jetons maximale — un plafond sur la longueur de la réponse
  • Une liste de messages — des objets avec des rôles user ou assistant, structurés de manière similaire à la façon dont vous auriez une conversation avec Claude ailleurs

Voici à quoi cela ressemble sous sa forme la plus basique :

typescript
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic();

const msg = await client.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 2048,
  messages: [{
    role: "user",
    content: "Hello, Claude",
  }],
});

Un exemple concret : revue de code bugué

Donnons à Claude quelque chose d'un peu plus intéressant que « bonjour ». Nous allons lui soumettre du code bugué et lui demander une revue. Voici l'ensemble — un fichier, environ 20 lignes de code :

typescript
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic();

const buggyCode = `
function add(a, b) {
  return a - b;
}
`;

const response = await client.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 2048,
  system: "You are a terse senior code reviewer. Give feedback in one paragraph.",
  messages: [
    { role: "user", content: `Review this code:\n${buggyCode}` },
  ],
});

for (const block of response.content) {
  if (block.type === "text") {
    console.log(block.text);
  }
}

Deux éléments à noter ici :

  1. L'invite système (system) est l'endroit où vous façonnez la personnalité. Je veux un relecteur senior concis, pas bavard — je le précise donc directement.
  2. Le message.content dans la réponse est un tableau de blocs, pas une chaîne de caractères. Pour une réponse textuelle basique, il n'y a généralement qu'un seul bloc de type text, mais Claude peut renvoyer plusieurs blocs — texte, appels d'outils, réflexion — nous bouclons donc toujours et vérifions le type.

Exécutez-le, et Claude repère que add effectue en réalité une soustraction et vous le signale en un paragraphe. C'est tout. C'est l'intégralité de l'appel API.

Sortie terminal de l'exécution du script : Claude répond que la fonction s'appelle add mais utilise une soustraction, et suggère de remplacer return a - b par return a + b

Du script au produit

Dans un produit réel, cette même structure messages.create est le moteur derrière quelque chose comme un point de terminaison de résumé. Récupérez une transcription de réunion dans la base de données, transmettez-la à Claude avec une invite système disant « extraire les insights et les risques », enregistrez le résultat dans la ligne correspondante, et renvoyez-le à l'interface utilisateur. C'est le même appel — simplement enveloppé dans un gestionnaire de route.

Un tableau de bord de réunions dans une application web de démonstration listant des réunions de projet enregistrées, chacune avec un aperçu de transcription et un bouton Generate summary alimenté par le même appel API

Récapitulatif

  • Votre premier appel API est une fonction messages.create avec un modèle, une limite de jetons, et des messages.
  • Stockez votre clé API dans un fichier .env.local pour la garder en dehors du contrôle de version.
  • Ajoutez une invite système pour façonner le comportement de Claude.
  • Le content de la réponse est un tableau de blocs — bouclez et vérifiez le type de chaque bloc.
  • À partir de là, tout se construit sur ce modèle.