# CORS

> L’API s’appelle directement depuis le JavaScript de n’importe quel site : Access-Control-Allow-Origin: *.

Documentation de l’API de WoWDB des Défias : https://docs.wowdb.assemblee-defias.fr/cors

## Ouvert à tous les sites

Les données sont publiques : l’API répond à toutes les origines, sans liste blanche. Une page de votre site de guilde peut appeler l’API directement depuis le navigateur du visiteur, sans serveur intermédiaire.

| En-tête | Valeur |
| --- | --- |
| `Access-Control-Allow-Origin` | `*` |
| `Access-Control-Allow-Methods` | `GET, HEAD, OPTIONS` |
| `Access-Control-Allow-Headers` | `Content-Type, If-None-Match, Cache-Control` |
| `Access-Control-Expose-Headers` | `ETag, Link, RateLimit-*, Retry-After, X-Request-Id` |
| `Access-Control-Max-Age` | `86400` (requête préalable gardée un jour) |

> **Bon à savoir** : Sans clé, il n’y a pas de cookie ni d’identifiant : n’utilisez pas `credentials: "include"`, inutile et refusé avec `*`.

**Depuis une page web**

#### cURL

```bash
# Requête préalable (preflight) d'un navigateur : 204 et les en-têtes CORS.
curl -i -X OPTIONS https://api.wowdb.assemblee-defias.fr/v1/classic/items \
  -H "Origin: https://ma-guilde.example" \
  -H "Access-Control-Request-Method: GET"
```

#### JavaScript

```js
<!-- Dans n'importe quelle page web : aucune clé, aucun serveur intermédiaire. -->
<ul id="dagues"></ul>
<script type="module">
  const res = await fetch("https://api.wowdb.assemblee-defias.fr/v1/classic/items?type=dagger&rogue=true&quality=epic");
  const { data } = await res.json();
  document.querySelector("#dagues").append(...data.map(item => {
    const li = document.createElement("li");
    li.textContent = item.name;
    return li;
  }));
</script>
```

---

API de WoWDB des Défias, v1 (2026-10-01). Adresse de base : https://api.wowdb.assemblee-defias.fr/v1. Index : https://docs.wowdb.assemblee-defias.fr/llms.txt.
