Intégration API

Guide pour intégrer l’API de Forecast Recirculation.

Introduction

L’API est définie en Protocol Buffers (Protobuf), qui décrivent tous les objets et méthodes du service Forecast Recirculation.

Elle peut être appelée à l’aide d’un client RPC (Connect) ou n’importe quel client HTTP/JSON.

Des SDKs sont fournis pour exposer les types/objets et définitions de l’API pour plusieurs langages, évitant de générer vous‑même les stubs à partir des fichiers .proto. Les SDKs n’embarquent pas le client réseau (Connect / HTTP).

L’URL de base des points de terminaison de l’API est https://recirculation.services.forecast.sirius.press.

Démarrer rapidement

Deux options selon votre contexte :

  1. Client réseau Connect + SDK — [recommandé].
    • Lisez la documentation Connect pour votre langage, installez le client réseau indiqué et le SDK Connect adéquat depuis le BSR. Notez que vous n’avez pas à générer vos propres stubs, le SDK les fournit.
  2. Client réseau HTTP/JSON (cURL, Guzzle, JS Fetch, etc.) + SDK.

Exemples

Intégration Web

  1. Installez les différentes dépendances :
    # Runtime dependencies
    npm install @connectrpc/connect@2 @connectrpc/connect-web@2 @bufbuild/protobuf@2
    
    # SDK/Stubs dependencies
    npm config set @buf:registry https://buf.build/gen/npm/v1/
    npm install @buf/lemonde_forecast-recirculation.bufbuild_es@latest
    
  2. Appelez l’API depuis votre code JavaScript.
    import {createClient} from "@connectrpc/connect";
    import {createConnectTransport} from "@connectrpc/connect-web";
    import {create} from '@bufbuild/protobuf';
    
    // Import service definition that you want to connect to.
    import {RecirculationService} from "@buf/lemonde_forecast-recirculation.bufbuild_es/sirius/forecast/recirculation/v2/recirculation_pb";
    import {GetPersonalizedTopNextRequestSchema} from "@buf/lemonde_forecast-recirculation.bufbuild_es/sirius/forecast/recirculation/v2/get_personalized_top_next_pb";
    
    // The transport defines what type of endpoint we're hitting.
    const transport = createConnectTransport({
        baseUrl: "https://recirculation.services.forecast.sirius.press",
        useHttpGet: true,
    });
    
    // Here we make the client itself, combining the service
    // definition with the transport.
    const client = createClient(RecirculationService, transport);
    
    // Typed usage: Explicit instantiation of the request.
    // This serves as living documentation of the expected fields.
    const request = create(GetPersonalizedTopNextRequestSchema, {
        clientId: "CLIENT_ID",
        editionId: "EDITION_ID",
        articleId: "ARTICLE_ID",
        userId: "USER_ID",
    });
    
    try {
        const response = await client.getPersonalizedTopNext(request);
        console.log("Response:", response);
    } catch (error) {
        console.error("Error:", error);
    }
    

Intégration HTTP/JSON

Les spécifications OpenAPI ci‑dessous couvre les intégrations HTTP/JSON.

Pour Connect, utilisez les définitions Protobuf et suivez la section “Démarrer rapidement”.