# 📋 Toutes les URLs API et Namespace Verisav

Document complet récapitulatif de toutes les URLs disponibles pour les vocabulaires RDF/OWL Verisav.

---

## 🌐 Namespaces (ns.verisav.fr)

### DPP - Digital Product Passport

| Type | URL | Description |
|------|-----|-------------|
| **Namespace URI** | `https://ns.verisav.fr/dpp#` | URI du namespace (pour préfixe `dpp:`) |
| **Documentation HTML** | `https://ns.verisav.fr/dpp/` | Page de documentation |
| **Turtle (.ttl)** | `https://ns.verisav.fr/dpp/dpp.ttl` | Fichier RDF/OWL en format Turtle |
| **JSON-LD** | `https://ns.verisav.fr/dpp/dpp.jsonld` | Contexte JSON-LD |
| **RDF/XML** | `https://ns.verisav.fr/dpp/dpp.xml` | Fichier RDF/OWL en format XML |

**Alternative (www.verisav.fr)** :
- Documentation : `https://www.verisav.fr/dpp/`
- Fichiers : `https://www.verisav.fr/dpp/dpp.ttl`, `dpp.jsonld`, `dpp.xml`

---

### RMA - Return Merchandise Authorization

| Type | URL | Description |
|------|-----|-------------|
| **Namespace URI** | `https://ns.verisav.fr/rma#` | URI du namespace (pour préfixe `rma:`) |
| **Documentation HTML** | `https://ns.verisav.fr/rma/` | Page de documentation |
| **Turtle (.ttl)** | `https://ns.verisav.fr/rma/rma.ttl` | Fichier RDF/OWL en format Turtle |
| **JSON-LD** | `https://ns.verisav.fr/rma/rma.jsonld` | Contexte JSON-LD |

**Alternative (www.verisav.fr)** :
- Documentation : `https://www.verisav.fr/rma/`
- Fichiers : `https://www.verisav.fr/rma/rma.ttl`, `rma.jsonld`

---

### WTY - Warranty & Contracts

| Type | URL | Description |
|------|-----|-------------|
| **Namespace URI** | `https://ns.verisav.fr/wty#` | URI du namespace (pour préfixe `wty:`) |
| **Documentation HTML** | `https://ns.verisav.fr/wty/` | Page de documentation |
| **Turtle (.ttl)** | `https://ns.verisav.fr/wty/wty.ttl` | Fichier RDF/OWL en format Turtle |
| **JSON-LD** | `https://ns.verisav.fr/wty/wty.jsonld` | Contexte JSON-LD |

**Alternative (www.verisav.fr)** :
- Documentation : `https://www.verisav.fr/wty/`
- Fichiers : `https://www.verisav.fr/wty/wty.ttl`, `wty.jsonld`

---

## 🔌 APIs REST (www.verisav.fr/api)

### API GraphQL

| Endpoint | Méthode | Description |
|----------|---------|-------------|
| **GraphQL** | `POST /api/graphql` | API GraphQL pour requêter les vocabulaires |
| **GraphQL** | `GET /api/graphql` | API GraphQL (GET supporté) |
| **URL complète** | `https://www.verisav.fr/api/graphql` | Endpoint principal |

**GraphiQL (développement)** :
- Local : `http://localhost:3000/api/graphql`
- Production : Activé si `ENABLE_GRAPHIQL=true`

---

### API SPARQL (endpoint public)

| Endpoint | Méthode | Description |
|----------|---------|-------------|
| **SPARQL** | `GET /api/sparql` | Requêtes SPARQL (paramètre `query`) |
| **SPARQL** | `POST /api/sparql` | Requêtes SPARQL (body `application/x-www-form-urlencoded` ou `application/sparql-query`) |
| **URL complète** | `https://www.verisav.fr/api/sparql` | Endpoint principal |

**Paramètres** :
- `query` : requête SPARQL (SELECT, ASK, CONSTRUCT, DESCRIBE)
- `format` (optionnel) : `application/sparql-results+json` (défaut) ou `application/sparql-results+xml`

**Données interrogées** : les trois vocabulaires DPP, RMA et WTY (fichiers Turtle) sont fusionnés en un seul graphe.

**Exemple GET** :
- `https://www.verisav.fr/api/sparql?query=SELECT%20%3Fs%20%3Fp%20%3Fo%20WHERE%20%7B%20%3Fs%20%3Fp%20%3Fo%20%7D%20LIMIT%2010`

Voir [SPARQL_API.md](./SPARQL_API.md) pour la documentation et des exemples de requêtes.

---

### APIs REST par vocabulaire

#### DPP

| Type | URL | Format | Description |
|------|-----|--------|-------------|
| **JSON-LD via API** | `https://www.verisav.fr/api/dpp/dpp.jsonld` | `application/ld+json` | Contexte JSON-LD via API |
| **Documentation** | `https://www.verisav.fr/api/dpp/` | `text/html` | Page HTML via API |
| **Turtle** | `https://www.verisav.fr/api/dpp/dpp.ttl` | `text/turtle` | Fichier Turtle via API |
| **RDF/XML** | `https://www.verisav.fr/api/dpp/dpp.xml` | `application/rdf+xml` | Fichier XML via API |

#### RMA

| Type | URL | Format | Description |
|------|-----|--------|-------------|
| **JSON-LD via API** | `https://www.verisav.fr/api/rma/rma.jsonld` | `application/ld+json` | Contexte JSON-LD via API |
| **Documentation** | `https://www.verisav.fr/api/rma/` | `text/html` | Page HTML via API |
| **Turtle** | `https://www.verisav.fr/api/rma/rma.ttl` | `text/turtle` | Fichier Turtle via API |

#### WTY

| Type | URL | Format | Description |
|------|-----|--------|-------------|
| **JSON-LD via API** | `https://www.verisav.fr/api/wty/wty.jsonld` | `application/ld+json` | Contexte JSON-LD via API |
| **Documentation** | `https://www.verisav.fr/api/wty/` | `text/html` | Page HTML via API |
| **Turtle** | `https://www.verisav.fr/api/wty/wty.ttl` | `text/turtle` | Fichier Turtle via API |

---

### API de recherche

| Endpoint | Méthode | Paramètres | Description |
|----------|---------|------------|-------------|
| **Recherche DPP** | `GET /api/v1/vocabulary/dpp/search` | `?q={query}` | Recherche dans le vocabulaire DPP |
| **Recherche RMA** | `GET /api/v1/vocabulary/rma/search` | `?q={query}` | Recherche dans le vocabulaire RMA |
| **Recherche WTY** | `GET /api/v1/vocabulary/wty/search` | `?q={query}` | Recherche dans le vocabulaire WTY |

**Exemples** :
- `https://www.verisav.fr/api/v1/vocabulary/dpp/search?q=ProductPassport`
- `https://www.verisav.fr/api/v1/vocabulary/rma/search?q=Ticket`
- `https://www.verisav.fr/api/v1/vocabulary/wty/search?q=Warranty`

**Format de réponse** : JSON
```json
{
  "query": "ProductPassport",
  "vocabulary": "dpp",
  "count": 1,
  "results": [
    {
      "type": "class",
      "name": "ProductPassport",
      "label": { "en": "Product Passport", "fr": "Passeport Produit" },
      "comment": { "en": "...", "fr": "..." },
      "vocabulary": "dpp",
      "url": "https://ns.verisav.fr/dpp#ProductPassport"
    }
  ]
}
```

---

## 📚 Exemples de données

### DPP Examples

| URL | Description |
|-----|-------------|
| `https://www.verisav.fr/data/dpp-examples/` | Page d'index des exemples |
| `https://www.verisav.fr/data/dpp-examples/fairphone-5.ttl` | Fairphone 5 - Smartphone réparable |
| `https://www.verisav.fr/data/dpp-examples/dyson-v15.ttl` | Dyson V15 - Aspirateur avec historique |
| `https://www.verisav.fr/data/dpp-examples/patagonia-jacket.ttl` | Patagonia Jacket - Produit mode |
| `https://www.verisav.fr/data/dpp-examples/seb-rice-cooker.ttl` | SEB Rice Cooker - Électroménager |
| `https://www.verisav.fr/data/dpp-examples/demo-product-complete.ttl` | Exemple complet exhaustif |

### RMA Examples

| URL | Description |
|-----|-------------|
| `https://www.verisav.fr/data/rma-examples/` | Page d'index des exemples |
| `https://www.verisav.fr/data/rma-examples/simple-return-refund.ttl` | Retour avec remboursement |
| `https://www.verisav.fr/data/rma-examples/ticket-with-dispute.ttl` | Ticket avec litige |
| `https://www.verisav.fr/data/rma-examples/return-with-shipping.ttl` | Retour avec expédition |
| `https://www.verisav.fr/data/rma-examples/service-ticket-complete.ttl` | Ticket complet |
| `https://www.verisav.fr/data/rma-examples/demo-complete-scenario.ttl` | Exemple exhaustif |

### WTY Examples

| URL | Description |
|-----|-------------|
| `https://www.verisav.fr/data/wty-examples/` | Page d'index des exemples |
| `https://www.verisav.fr/data/wty-examples/simple-warranty.ttl` | Garantie étendue simple |
| `https://www.verisav.fr/data/wty-examples/maintenance-contract.ttl` | Contrat de maintenance |
| `https://www.verisav.fr/data/wty-examples/claim-assessment.ttl` | Évaluation automatisée |
| `https://www.verisav.fr/data/wty-examples/warranty-with-limits.ttl` | Garantie avec limites |
| `https://www.verisav.fr/data/wty-examples/demo-complete-warranty.ttl` | Exemple exhaustif |

---

## 📖 Documentation

| URL | Description |
|-----|-------------|
| `https://www.verisav.fr/vocabularies` | Page principale listant tous les vocabulaires |
| `https://www.verisav.fr/vocabularies/GRAPHQL_API.md` | Documentation API GraphQL |
| `https://www.verisav.fr/vocabularies/LIENS_NS_VERISAV.md` | Liens namespace complets |

---

## 🔗 Récapitulatif par vocabulaire

### DPP (Digital Product Passport)

**Namespace** : `https://ns.verisav.fr/dpp#`

**Fichiers statiques** :
- Turtle : `https://ns.verisav.fr/dpp/dpp.ttl` ou `https://www.verisav.fr/dpp/dpp.ttl`
- JSON-LD : `https://ns.verisav.fr/dpp/dpp.jsonld` ou `https://www.verisav.fr/dpp/dpp.jsonld`
- RDF/XML : `https://ns.verisav.fr/dpp/dpp.xml` ou `https://www.verisav.fr/dpp/dpp.xml`

**APIs** :
- GraphQL : `https://www.verisav.fr/api/graphql`
- JSON-LD API : `https://www.verisav.fr/api/dpp/dpp.jsonld`
- Recherche : `https://www.verisav.fr/api/v1/vocabulary/dpp/search?q={query}`

**Documentation** :
- HTML : `https://ns.verisav.fr/dpp/` ou `https://www.verisav.fr/dpp/`

---

### RMA (Return Merchandise Authorization)

**Namespace** : `https://ns.verisav.fr/rma#`

**Fichiers statiques** :
- Turtle : `https://ns.verisav.fr/rma/rma.ttl` ou `https://www.verisav.fr/rma/rma.ttl`
- JSON-LD : `https://ns.verisav.fr/rma/rma.jsonld` ou `https://www.verisav.fr/rma/rma.jsonld`

**APIs** :
- GraphQL : `https://www.verisav.fr/api/graphql`
- JSON-LD API : `https://www.verisav.fr/api/rma/rma.jsonld`
- Recherche : `https://www.verisav.fr/api/v1/vocabulary/rma/search?q={query}`

**Documentation** :
- HTML : `https://ns.verisav.fr/rma/` ou `https://www.verisav.fr/rma/`

---

### WTY (Warranty & Contracts)

**Namespace** : `https://ns.verisav.fr/wty#`

**Fichiers statiques** :
- Turtle : `https://ns.verisav.fr/wty/wty.ttl` ou `https://www.verisav.fr/wty/wty.ttl`
- JSON-LD : `https://ns.verisav.fr/wty/wty.jsonld` ou `https://www.verisav.fr/wty/wty.jsonld`

**APIs** :
- GraphQL : `https://www.verisav.fr/api/graphql`
- JSON-LD API : `https://www.verisav.fr/api/wty/wty.jsonld`
- Recherche : `https://www.verisav.fr/api/v1/vocabulary/wty/search?q={query}`

**Documentation** :
- HTML : `https://ns.verisav.fr/wty/` ou `https://www.verisav.fr/wty/`

---

## 🌍 Domaines et redirections

### Domaines principaux

- **www.verisav.fr** : Site principal, APIs, documentation
- **ns.verisav.fr** : Namespace et fichiers statiques des vocabulaires
- **verisav.fr** : Redirige vers www.verisav.fr

### Équivalences

Les fichiers sont accessibles via les deux domaines :
- `https://ns.verisav.fr/dpp/dpp.ttl` = `https://www.verisav.fr/dpp/dpp.ttl`
- `https://ns.verisav.fr/rma/rma.ttl` = `https://www.verisav.fr/rma/rma.ttl`
- `https://ns.verisav.fr/wty/wty.ttl` = `https://www.verisav.fr/wty/wty.ttl`

---

## 📝 Notes importantes

1. **CORS activé** : Tous les endpoints supportent CORS (`Access-Control-Allow-Origin: *`)
2. **Cache** : Les fichiers statiques sont mis en cache (max-age=3600)
3. **Content-Type** : Tous les fichiers sont servis avec le bon Content-Type
4. **Version** : Tous les vocabulaires sont en version 1.0.0
5. **Dernière modification** : 2025-12-28

---

**Dernière mise à jour** : 2025-12-28

