API Search
Le module search est un moteur de découverte général, distinct de la recherche directe disponible sur GET /api/articles/search.
Différence avec la recherche directe
GET /api/articles/search |
GET /api/search/articles/discover |
|---|---|
Recherche 100% locale (MongoDB) |
Recherche locale + enrichissement via résolveurs |
Latence faible (< 200 ms) |
Latence plus haute selon les résolveurs actifs |
Résultats : articles correspondants à la requête |
Résultats : articles directs + équivalents (OEM, cross-refs, TecDoc) |
Source : toujours |
Source : |
GET /api/search/articles/discover
Recherche des articles dans la base locale, puis enrichit les résultats via des résolveurs indépendants (relations OEM, relations internes, catalogue TecDoc).
Tous les endpoints requièrent une authentification (authMiddleware).
Paramètres de requête
| Paramètre | Type | Requis | Description |
|---|---|---|---|
|
string |
(1) |
Recherche partielle sur la référence ou les alias normalisés |
|
string |
(1) |
Recherche sur le nom de marque |
|
string |
(1) |
Recherche par code EAN |
|
string |
(1) |
Recherche sur les alias de l’article |
|
ObjectId |
Oui |
Tenant courant |
|
string |
Non |
Filtre par archétype (nom) |
|
ObjectId |
Non |
Client pour calcul du prix net personnalisé |
|
ObjectId |
Non |
Tier tarifaire pour le calcul du prix |
|
string |
Non |
Résolveurs actifs, séparés par virgule. Défaut : |
|
number |
Non |
Page (défaut : 1) |
|
number |
Non |
Résultats par page (défaut : 20) |
Au moins un critère parmi reference, brand, ean, alias est obligatoire.
|
Résolveurs disponibles
| Valeur | Comportement |
|---|---|
|
Cherche dans |
|
Cherche dans |
|
Interroge l’API TecDoc ( |
Format de réponse
{
items: Array<{
article: IArticle;
price: ArticlePriceResult | null;
stock: ArticleStockResult | null;
promotions: IPromotion[];
source: "direct" | "oem" | "internal" | "tecdoc";
confidence: number; // 0-1, degré de certitude de l'équivalence
}>;
resolvers_used: string[];
pagination: {
page: number;
limit: number;
total: number;
pages: number;
};
}
Le tableau items est ordonné : articles directs en premier, puis articles enrichis par résolveur.
Exemples
GET /api/search/articles/discover?reference=BP123&company=<id>
GET /api/search/articles/discover?reference=BP123&resolvers=oem&company=<id>
GET /api/search/articles/discover?reference=BP123&resolvers=oem,internal,tecdoc&company=<id>