Démarrer

Prise en main

Installer Zapi, créer une collection, envoyer une première requête et lancer les tests en quelques minutes.

# Installation

Les builds desktop (Windows, macOS, Linux) sont publiés dans les releases GitHub. Télécharge le paquet de ton système, lance Zapi, puis choisis un dossier local pour ta première collection.

# Collection de démo

Au premier lancement, l’assistant d’accueil propose d’installer une collection de démonstration. C’est le moyen le plus rapide de voir une requête, un script et le runner en action avant de partir de zéro.

# Première collection

Arborescence
ma-collection/
├─ collection.yml
├─ environments/
│  ├─ local.env.yml
│  └─ staging.env.yml
└─ requests/
   ├─ 01-login.yml
   ├─ 02-get-user.yml
   └─ 03-live-events.yml
collection.yml
name: Acme API
variables:
  team: platform
docs: |
  Collection de validation pour l’API Acme.
  Les descriptions Markdown sont reprises dans l’export OpenAPI.
environments/local.env.yml
variables:
  baseUrl: http://localhost:3000
  email: [email protected]

# Première requête

requests/01-login.yml
name: Créer une session
kind: http
method: POST
url: "{{baseUrl}}/auth/login"
headers:
  - key: Content-Type
    value: application/json
    enabled: true
body:
  type: json
  content: |
    {
      "email": "{{email}}",
      "password": "{{secret:API_PASSWORD}}"
    }
scripts:
  tests: |
    test("session créée", () => expect(res.status).toBe(200))
    test("token présent", () => expect(res.json.accessToken).toBeDefined())
docs: |
  Authentifie un utilisateur de test et expose un jeton pour la suite.

Sélectionne l’environnement local, ouvre la requête, puis envoie-la avec Ctrl + Enter. Les placeholders {{var}} sont résolus côté Rust juste avant l’envoi.

# Valider toute la collection

Runner CLI
zapi --run --collection ./ma-collection --env local \
  --report reports/zapi.json --junit reports/zapi.xml

Le runner exécute les fichiers dans l’ordre trié, applique preRequest → envoi → tests, propage les variables runtime et sort avec un code exploitable par la CI.