Read-only API External clients friendly OpenAPI 3.1

Fast Fashion Dashboard API

Cette API expose uniquement les ressources utiles au projet : catégories et produits. Le format par défaut reste compatible avec le dashboard, et un format ressource stable est disponible pour les services externes.

Points clés

Stable
  • Réponses JSON avec erreurs structurées.
  • Authentification Bearer supportée via l’en-tête Authorization.
  • CORS activé pour les consommateurs externes.
  • goods_id stable et unique par dataset.
  • Monnaie sérialisée en chaînes à 2 décimales.
  • Nesting conservé en vrais tableaux/objets.
  • source_url et category_url privilégiés pour le matching.

Base URLs

OpenAPI/api/openapi.json
Catégories/api/categories
Produit/api/products/{goods_id}
AuthAuthorization: Bearer <token>
Version1.0.2

Endpoints

Tous en lecture seule
GET/api/categories

Liste les catégories dans un format stable.

{
  "dataset": {"id": "shein", "label": "Shein Bright Data sample"},
  "data": [
    {
      "name": "Dresses",
      "slug": "dresses",
      "top_category_name": "Dresses",
      "source_url": "https://...",
      "image_url": "https://..."
    }
  ],
  "pagination": {"page": 1, "pageSize": 100, "total": 502, "totalPages": 6}
}
GET/api/categories/{slug}

Retourne une seule catégorie.

{
  "dataset": {...},
  "data": {
    "name": "Dresses",
    "slug": "dresses",
    "source_url": "https://..."
  }
}
GET/api/products

Liste les produits. Utilise format=resource pour le schéma externe.

{
  "dataset": {...},
  "data": [
    {
      "goods_id": "shein:123",
      "goods_sn": "123",
      "spu": "123",
      "name": "Long Dress",
      "retail_price": "10.49",
      "sale_price": "10.49",
      "images": ["https://..."],
      "attributes": [{"name": "brand", "value": "SHEIN"}]
    }
  ],
  "pagination": {...},
  "categories": [...]
}
GET/api/products/{goods_id}

Retourne un produit unique par identifiant stable.

{
  "dataset": {...},
  "data": {
    "goods_id": "shein:123",
    "category_url": "http://host/api/categories/dresses?dataset=shein",
    "product_url": "https://..."
  }
}

Paramètres utiles

datasetshein ou asos
pagePagination, commence à 1
pageSizeJusqu’à 200
searchRecherche texte
categoryFiltre catégorie
imagesOnlytrue/false
sortrelevance, price-asc, price-desc, rating-desc, reviews-desc, name-asc
formatlegacy ou resource

Compatibilité importante

  • Les champs monétaires restent des chaînes.
  • Les données imbriquées restent des objets/arrays réels.
  • Les schémas sont stables et lisibles par des services externes.
  • Le dashboard peut continuer à consommer le format legacy si nécessaire.

Tu peux aussi lire la spec brute via /api/openapi.json.