Skip to main content

Collections API

Toutes les collections couvrent les 172 endpoints de l’API, groupés par module. Maintenues automatiquement à partir de openapi.json.

Téléchargements

OutilFichierFormat
Postmanthehive-api.postman.jsonv2.1
Insomniathehive-api.insomnia.jsonv4
Brunocollections/bruno/Dossier
OpenAPIopenapi.json3.0

Variables d’environnement

Les collections utilisent ces variables — à configurer dans votre outil :
VariableProdStagingDev
base_urlhttps://api.wethehivers.com/v1/apihttps://staging-api.wethehivers.com/v1/apihttp://localhost:3091/v1/api
access_token(login)(login)(login)
refresh_token(login)(login)(login)

Flow d’utilisation

1. Postman

Import

# Via CLI Newman (optionnel)
newman run thehive-api.postman.json \
  --env-var base_url=https://api.wethehivers.com/v1/api \
  --env-var access_token=<TOKEN>

Ou via l’UI

  1. File → Import → Upload Files
  2. Sélectionner thehive-api.postman.json
  3. Créer un environnement avec les variables ci-dessus
  4. Lancer Auth / login → tokens stockés automatiquement

Script de test auto (login)

Au niveau de la collection, dans Tests :
if (pm.response.code === 200 && pm.info.requestName === 'login') {
  const data = pm.response.json();
  pm.environment.set('access_token', data.accessToken);
  pm.environment.set('refresh_token', data.refreshToken);
}

2. Insomnia

Variables dans Environment (JSON) :
{
  "base_url": "https://api.wethehivers.com/v1/api",
  "access_token": "",
  "refresh_token": ""
}

3. Bruno

Bruno stocke les collections comme des fichiers .bru en markdown — versionnable avec git.
# Cloner la doc et ouvrir le dossier
git clone https://gitlab.com/the-hive5354847/docs.git
cd docs/collections/bruno
# Ouvrir avec l'app Bruno → Open Collection → choisir ce dossier

Structure

collections/bruno/
├── bruno.json              # méta collection
├── environments/
│   ├── Production.bru      # base_url prod
│   ├── Staging.bru         # base_url staging
│   └── Dev.bru             # base_url localhost
├── auth/
│   ├── login.bru
│   ├── logout.bru
│   └── refresh-token.bru
├── candidats/
│   ├── register.bru
│   └── profile.bru
...

Exemple login.bru

meta {
  name: login
  type: http
  seq: 1
}
post {
  url: {{base_url}}/auth/login
  body: json
  auth: none
}
body:json {
  {
    "email": "test@example.com",
    "password": "Passw0rd!"
  }
}
script:post-response {
  bru.setEnvVar("access_token", res.body.accessToken);
  bru.setEnvVar("refresh_token", res.body.refreshToken);
}

4. Régénération

Les collections sont générées depuis api-reference/openapi.json. Pour régénérer localement :
# Postman (via openapi-to-postmanv2)
npx openapi-to-postmanv2 \
  -s api-reference/openapi.json \
  -o collections/thehive-api.postman.json

# Insomnia (via openapi-to-insomnia)
npx openapi-to-insomnia \
  api-reference/openapi.json > collections/thehive-api.insomnia.json

# Bruno (via bruno-converters)
bruno generate \
  --from openapi \
  --input api-reference/openapi.json \
  --output collections/bruno/

5. Exemples d’appels pré-configurés

Toutes les requêtes incluent :
  • Headers : Authorization: Bearer {{access_token}}, Content-Type: application/json
  • Exemples de body avec valeurs fictives cohérentes
  • Paramètres de chemin pré-remplis (:id = 1)
  • Tests automatiques de base (status 2xx, schéma JSON)

6. Workflow CI

Les collections sont régénérées automatiquement à chaque modification du backend Spring Boot (trigger GitLab CI docs:regenerate-collections).

Voir aussi