Créer des flux partagés réutilisables

Cette page s'applique à Apigee et à Apigee hybrid.

Consultez la documentation d'Apigee Edge.

Combinez des règles et des ressources au sein d'un flux partagé : cela vous permet d'utiliser ce flux depuis plusieurs proxys d'API, et même depuis d'autres flux partagés. Bien qu'il soit comparable à un proxy, un flux partagé ne possède pas de point de terminaison. Il ne peut être utilisé que depuis un proxy d'API ou un flux partagé appartenant à la même organisation que le flux partagé lui-même.

En centralisant une fonctionnalité utile à plusieurs emplacements, un flux partagé vous aide à assurer la cohérence, à réduire le temps de développement et à gérer plus facilement le code.

La vidéo suivante montre comment créer et déboguer la trace d'un flux partagé dans l'interface utilisateur Apigee.

Vous pouvez appeler un flux partagé à l'aide de la règle FlowCallout. De plus, en associant un flux partagé à un hook de flux, vous pouvez faire en sorte que le flux partagé s'exécute avant une requête cible ou de proxy, ou après une réponse cible ou de proxy.

Pour en savoir plus sur la règle FlowCallout, consultez la page Règle FlowCallout. Pour obtenir plus d'informations sur les hooks de flux, consultez la page Associer un flux partagé à l'aide de hooks de flux.

Par exemple, imaginons que vous disposiez de fonctionnalités exploitées à plusieurs emplacements ou devant être uniformisées dans l'ensemble des API de votre organisation. Vous pouvez créer un flux partagé pour chaque catégorie, y compris les suivantes :

  • La sécurité, avec le code d'autorisation utilisant l'authentification OAuth et la vérification des clés API, ainsi qu'un code de protection contre les menaces.
  • La journalisation pour générer des messages d'erreur standards.
  • La médiation pour convertir des messages XML au format JSON, et inversement.

Dans l'illustration suivante, deux proxys d'API font appel (à l'aide d'une règle FlowCallout) à un flux partagé pour authentifier les requêtes utilisateur entrantes. Le flux AuthSharedFlow a été déployé séparément dans l'organisation avant les proxys. Il peut ainsi traiter leurs requêtes. Un flux partagé peut être développé et géré par une équipe chargée des règles générales de l'entreprise, puis utilisé dans des proxys par des équipes sectorielles créant des applications plus spécialisées.

Schéma illustrant le flux de la règle POST /foodcarts vers la règle POST /menus puis vers AuthSharedFlow.
          Légende :
          a) Plusieurs proxys d'API consomment le flux partagé à l'aide de règles FlowCallout.
          b) Les règles FlowCallout effectuent des appels des proxys d'API vers un flux partagé.
          c) Le groupe de flux partagé contient une logique réutilisable sous la forme de règles et de ressources.

Développer un flux partagé

Lorsque vous développez un flux partagé, vous devez toujours le tester en envoyant des appels à un proxy d'API. En d'autres termes, vous ne pouvez pas envoyer directement des requêtes à un flux partagé, comme vous le feriez avec un proxy d'API. À la place, vous envoyez des requêtes à un proxy d'API, qui lui-même appelle le flux partagé.

Voici les grandes étapes à suivre pour développer un flux partagé :

  1. Déterminez l'ensemble de fonctionnalités partagé.

    Par exemple, vous pouvez associer des fonctionnalités de gestion du trafic, y compris la suppression des pics de trafic. De cette façon, vous pouvez gérer leur configuration en dehors du workflow de celles qui mettent en œuvre une logique sectorielle.

  2. Développez un flux partagé en définissant des règles et des ressources complémentaires, comme vous le feriez lors du développement d'un proxy d'API.

    Un flux partagé est une séquence d'étapes conditionnelles. Le développement d'un flux partagé ressemble donc à celui d'un proxy d'API. Vous pouvez ajouter des règles et des ressources que vous pouvez inclure dans un proxy.

    Par exemple, pour assurer la compatibilité avec la gestion du trafic, vous pouvez appliquer une règle Spike Arrest pour n'autoriser que 30 requêtes par seconde, comme dans l'exemple suivant :

    <SpikeArrest async="false" continueOnError="false" enabled="true" name="Spike-Arrest">
        <DisplayName>Spike Arrest</DisplayName>
        <Properties/>
        <Identifier ref="request.header.some-header-name"/>
        <MessageWeight ref="request.header.weight"/>
        <Rate>30ps</Rate>
    </SpikeArrest>
    

    Vous pouvez ensuite associer la règle Spike Arrest comme étape dans un flux partagé pour la gestion du trafic. La règle s'exécute pour tout proxy d'API qui appelle le flux partagé.

    <SharedFlow name="default">
        <Step>
            <Name>Spike-Arrest</Name>
        </Step>
    </SharedFlow>
    

    Pour découvrir comment démarrer un flux partagé dans la console de gestion, consultez la section Créer un flux partagé dans l'interface utilisateur d'Apigee.

    Comme avec les proxys d'API, vous pouvez importer un fichier ZIP contenant les artefacts sources du flux partagé à l'aide de l'API de création de flux partagé. L'exemple suivant montre comment importer un flux partagé avec l'API Apigee :

    curl "https://apigee.googleapis.com/v1/organizations/$ORG/sharedflows?action=import&sharedFlowID=mySharedFlow" \
      -X POST \
      -F "file=@sharedflow.zip" \
      -H "Authorization: Bearer $TOKEN"
    

    $TOKEN est défini sur votre jeton d'accès OAuth 2.0, comme décrit dans la section Obtenir un jeton d'accès OAuth 2.0. Pour en savoir plus sur les options curl utilisées dans cet exemple, consultez la section Utiliser curl. Pour obtenir une description des variables d'environnement utilisées, consultez la section Définir des variables d'environnement pour les requêtes API Apigee.

  3. Déployez le flux partagé dans l'environnement avant de déployer des proxys ou des flux partagés qui l'utiliseront. Vous déployez un flux partagé de la même manière qu'un proxy d'API. (Pour en savoir plus, consultez la section Présentation du déploiement.)

    Un flux partagé doit appartenir à la même organisation et être déployé dans le même environnement que les proxys d'API et les autres flux partagés qui l'utilisent. Le déploiement du flux partagé avant les proxys permet de s'affranchir de la dépendance du proxy sur le flux partagé au moment du déploiement.

    Vous pouvez déployer un flux partagé à l'aide d'un appel d'API Apigee, comme suit :

    curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/sharedflows/$SHAREDFLOW/revisions/$REV/deployments \
      -X POST \
      -H "Authorization: Bearer $TOKEN"

    À l'instar des proxys d'API, tous les déploiements de flux partagés réussis vers Apigee sont des déploiements sans interruption.

  4. Développez le proxy d'API consommateur afin qu'il puisse appeler le flux partagé dans le cadre de son propre flux.

    Dans un proxy d'API, vous appelez un flux partagé avec une règle FlowCallout. (Vous pouvez également associer le flux partagé au proxy à l'aide d'un hook de flux.)

    Pour utiliser un flux partagé, ajoutez une règle FlowCallout au proxy ou au flux partagé qui l'utilisera. Tout comme une règle Service Callout, avec laquelle vous appelez un autre service, la règle FlowCallout appelle le flux partagé. Le proxy d'API consommateur doit être déployé après le flux partagé et dans le même environnement que celui-ci. Le flux partagé doit être en place lorsque vous souhaitez tester un appel à ce flux à l'aide de la règle FlowCallout.

    Dans le code suivant, une règle FlowCallout appelle un flux partagé appelé traffic-management-shared.

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Traffic-Management-Flow-Callout">
        <DisplayName>Traffic Management FlowCallout</DisplayName>
        <Properties/>
        <SharedFlowBundle>traffic-management-shared</SharedFlowBundle>
    </FlowCallout>
    

    Pour en savoir plus, consultez la section Appeler un flux partagé à partir d'un proxy d'API ou d'un flux partagé.

  5. Déployez le proxy d'API consommateur pour commencer à utiliser le flux partagé. Pour en savoir plus sur le déploiement en général, consultez la page Présentation du déploiement.
  6. Procédez au développement de manière itérative par traçage, comme avec un proxy d'API.

    Comme avec un proxy d'API, vous développez un flux partagé en appelant et en effectuant le suivi de manière itérative jusqu'à obtenir la logique qui vous convient. Dans ce cas, comme le flux partagé ne s'exécute pas de lui-même, vous appelez un point de terminaison du proxy et déboguez le proxy.

    Pour ce faire, procédez comme suit :

    1. Assurez-vous que le flux partagé et le proxy d'API qui l'appelle avec une règle FlowCallout se trouvent dans la même organisation et sont déployés dans le même environnement.
    2. Dans l'onglet Trace du proxy d'API, commencez à suivre la trace du proxy d'API.
    3. Envoyez une requête à un point de terminaison du proxy dans le proxy d'API. Le flux provenant du point de terminaison doit inclure la règle FlowCallout qui appelle le flux partagé.
    4. Dans l'onglet Trace, examinez le flux entre le proxy d'API et le flux partagé.

      Notez que dans le cadre du traçage, le flux partagé est représenté sous la forme d'un ensemble d'étapes ou de règles entouré d'une zone grise. Les icônes représentant les règles FlowCallout précèdent les flux partagés. (Pour en savoir plus sur le traçage, consultez la page Outil Debug.)

      Carte des transactions.  Légende :
            a) La règle FlowCallout appelle le flux partagé.
            b) Le flux partagé inclut une règle SpikeArrest et une règle FlowCallout.
            La règle FlowCallout appelle un autre flux partagé à l&#39;aide d&#39;une règle VerifyAPIKey.

Créer un flux partagé dans l'interface utilisateur d'Apigee

Lorsque vous utilisez l'API Apigee pour créer un flux partagé, vous pouvez soit en créer un de toutes pièces, soit importer des sources de flux existantes en tant que fichier ZIP de groupe de flux.

Accédez à la page Flux partagés, comme décrit ci-dessous. Sur la page Flux partagés, vous pouvez afficher une liste des flux partagés au sein de l'organisation, ainsi que modifier ou supprimer des flux dans cette liste.

Pour créer un flux partagé dans l'interface utilisateur d'Apigee, procédez comme suit :

  1. Connectez-vous à l'UI Apigee.
  2. Sélectionnez l'organisation contenant votre flux partagé. Consultez la page Passer d'une organisation à une autre.

    Le flux partagé sera disponible pour tous les proxys d'API et les flux partagés déployés dans un environnement à partir de cette organisation. Il ne sera pas disponible en dehors de cette organisation.

  3. Dans la barre de navigation de gauche, cliquez sur Développer > Flux partagés.
  4. Créez ou importez un flux partagé :
    • Cliquez sur Créer pour créer un flux de toutes pièces. Vous pouvez configurer des règles et des ressources en tant qu'étapes du flux.

      La boîte de dialogue Créer un flux partagé s'affiche.

      1. Saisissez le nom du flux partagé.

        Il s'agit du nom que les proxys d'API et les autres flux partagés utilisent pour faire référence à ce flux partagé. Le nom doit être descriptif pour les développeurs qui utilisent le flux.

      2. Saisissez une description pour fournir davantage d'informations sur le flux.
      3. Cliquez sur Create (Créer).

        Le flux partagé est créé.

      4. Vous pouvez ensuite développer les fonctionnalités du flux partagé et le déployer dans l'environnement souhaité.
    • Cliquez sur Importer un groupe pour créer un flux partagé à partir de sources existantes par importation d'un groupe de flux.

      Un groupe de flux partagés contient les artefacts sources d'un flux partagé. Par exemple, si vous téléchargez un flux partagé à partir de l'interface utilisateur d'Apigee, vous disposez alors d'un fichier ZIP incluant le groupe de flux.

      La boîte de dialogue Créer un flux partagé s'affiche.

      1. Sélectionnez le fichier ZIP contenant les artefacts que vous souhaitez inclure dans le nouveau flux.
      2. Cliquez sur Ouvrir.
      3. Saisissez un nom pour le flux partagé importé.

        Il s'agit du nom que les proxys d'API et les autres flux partagés utilisent pour faire référence à ce flux partagé. Le nom doit être descriptif pour les développeurs qui utilisent le flux.

      4. Cliquez sur Create (Créer).

        Le flux partagé est créé à partir du groupe.

      5. Vous pouvez ensuite développer les fonctionnalités du flux partagé et le déployer dans l'environnement souhaité.

Appeler un flux partagé à partir d'un proxy d'API ou d'un flux partagé

Vous pouvez appeler un flux partagé à partir d'un proxy ou d'un autre flux partagé à l'aide de la règle FlowCallout.

  1. Dans l'interface utilisateur d'Apigee, ouvrez le proxy d'API ou le flux partagé à partir duquel vous souhaitez appeler le flux partagé.
  2. Cliquez sur l'onglet Développer :
  3. Dans le navigateur, à côté de l'élément Règles, cliquez sur +.
  4. Dans la liste des règles, cliquez sur FlowCallout sous Extension.
  5. Saisissez le nom à afficher et le nom (identifiant unique), puis sélectionnez le flux partagé que cette règle appelle.
  6. Cliquez sur Ajouter.
  7. Ajoutez la nouvelle règle FlowCallout au proxy sur lequel vous souhaitez effectuer l'appel.

Voir aussi

Associer des proxys d'API en chaîne