Aller au contenu
  • Société
    • Qui sommes-nous
    • Nos valeurs
    • Nos partenaires
    • Entreprise citoyenne
    • Régions
  • Services
    • Expertise
    • Formation
    • Développement
    • Migration
    • Infogérance
  • Join the Team
  • Actualités
  • Blog
  • Formations
  • Rugb’Easyteam
  • Contact
Menu
  • Société
    • Qui sommes-nous
    • Nos valeurs
    • Nos partenaires
    • Entreprise citoyenne
    • Régions
  • Services
    • Expertise
    • Formation
    • Développement
    • Migration
    • Infogérance
  • Join the Team
  • Actualités
  • Blog
  • Formations
  • Rugb’Easyteam
  • Contact
Inscrivez-vous à la newsletter

Inscrivez-vous à la newsletter

Abonnez-vous maintenant et nous vous tiendrons au courant.
Nous respectons votre vie privée. Vous pouvez vous désabonner à tout moment.

Bienvenue sur le Blog d'EASYTEAM (ex ArKZoYd)

  • Accueil
  • Actualités
  • Cloud
  • Infrastructure
  • Données / Sécurité
  • Intégration
  • Dev / DevOps
  • SAM / FinOps
Menu
  • Accueil
  • Actualités
  • Cloud
  • Infrastructure
  • Données / Sécurité
  • Intégration
  • Dev / DevOps
  • SAM / FinOps
  • le 01/04/2019
  • Badreddine
  • Intégration, SOA & Urbanisation, SOA Suite @fr

Composite Rest avec la SOA Suite 12c

Partager sur linkedin
LinkedIn
Partager sur twitter
Twitter
Partager sur facebook
Facebook
Partager sur google
Google+

Depuis la version 12.2.1, Oracle a introduit le RestAdapter dans le designer des Composites de la SOA Suite et celui de l’OSB, ce dernier permettant d’implémenter des flux et processus en REST de bout en bout.

Javascript est également proposé comme langage de mapping et de transformation des objets JSON.
Dans cet article, nous allons faire un exemple simple qui illustre l’utilisation de ces nouvelles fonctionnalités.

 

Quelques considérations à prendre en compte

  • Dans les composites, seul BPEL permet de s’interfacer via REST que ce soit en inbound ou outbound
  • La définition des endpoints REST n’est possible qu’avec WADL, les autres formats tels que OpenAPI ou RAML ne sont pas supportés
  • Les objets JSON ne sont pas définis, le parsing et la construction avec Javascript se fait donc sans assistance contrairement aux mappings XML

 

Implémentation

Premièrement, on crée un service Rest avec le Rest Adapter, le wizard permet de créer une définition en se basant sur un WADL existant, sinon il faut créer les ressources et les verbes HTTP

<?xml version = '1.0' encoding = 'UTF-8'?>
<application xmlns:soa="http://www.oracle.com/soa/rest" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://wadl.dev.java.net/2009/02">
   <doc title="PetStoreService">PetStoreRest</doc>
   <resources>
      <resource path="/pet">
         <method name="POST" soa:name="addPet">
            <doc title="POST addPet">Add a new pet to the store</doc>
            <request>
               <representation mediaType="application/json"/>
            </request>
            <response status="201"/>
            <response status="405"/>
         </method>
      </resource>
      <resource path="/pet/{petId}">
         <method name="GET" soa:name="getPetById">
            <doc title="GET getPetById">Returns a single pet</doc>
            <request>
               <param name="petId" style="template" type="xsd:long"/>
            </request>
            <response status="200">
               <representation mediaType="application/json"/>
            </response>
            <response status="400"/>
         </method>
      </resource>
   </resources>
</application>

Ensuite, pour créer un processus BPEL avec une interface REST, il suffit de glisser le composant et choisir l’interface précédemment créée

Si on veut implémenter les deux opérations dans le même Processus, c’est possible. Pour ce faire, on déclare les deux opérations dans la section méthodes.

On peut le faire manuellement en combinant les actions pick & OnMessage sur un processus BPEL déjà créé.

Le flux change de forme habituelle, l’action receive n’est plus présente et a laissé place à pick.

 

Utilisation de Javascript

Pour tester l’implémentation de JavaScript, on va construire une réponse simple pour le service getPetById, on va construire un Objet JSON de base avec l’id issu de la requête

{
    "id": "34"
}

Premièrement, on déclare une variable « petId » qui va récupérer la valeur de l’URL, cette variable va être mappée avec le paramètre PATH de la méthode GET via la propriété rest.template.petId

Ensuite, on affecte la valeur issue de la requête à un attribut « id » dans le JSON de réponse

Enfin, la méthode addPet ne sera pas implémentée, on va donc placer le code HTTP 405 pour informer les consommateurs de l’API.
Dans l’action reply, c’est la propriété « rest.binding.http.code » que l’on va manipuler.

Ci-dessous les tests des deux opérations après déploiement

 

Badreddine
Badreddine
Voir tous ses articles
Partager sur linkedin
LinkedIn
Partager sur twitter
Twitter
Partager sur facebook
Facebook
Partager sur google
Google+

Laisser un commentaire Annuler la réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Les derniers articles

  • AZURE IaaS VM BACKUP 11/12/2019
  • Gestion de la haute disponibilité PostgreSQL avec REPMGR 09/12/2019
  • Migrer votre workload dans Azure avec Azure Migrate et Azure Site Recovery 2/2 04/12/2019
  • Migrer votre workload dans Azure avec Azure Migrate et Azure Site Recovery 1/2 02/12/2019
  • Sécurisation des environnements colocatifs 27/11/2019

Les derniers commentaires

  • Hafedh Kaddachi dans Duplicate for standby : RMAN-05507: standby control file checkpoint is more recent than duplication point-in-time
  • manu sharma dans Les outils du Big Data
  • Oracle Cloud Gen 2 (OCI) : (4) Utiliser Terraform - EASYTEAM dans Oracle Cloud Gen 2 : (1) Les premiers pas
  • Isaac ARNAULT dans Terraform & Microsoft Azure : Partie 1 – l’IaC c’est quoi ?
  • קידום אתרים בגוגל dans Introduction à Oracle UCM : Content Server
Espace Membres
Mot de passe perdu?
EASYTEAM

Tour Nova, 71 Boulevard National,
92250 La Garenne-Colombes
Tél. 0800 40 60 40
contact@easyteam.fr

Facebook Linkedin Twitter
Navigation
  • Accueil
  • Qui sommes-nous
  • Entreprise citoyenne
  • Nos valeurs
  • Régions
  • Partenaires
  • Contact
  • Support
Menu
  • Accueil
  • Qui sommes-nous
  • Entreprise citoyenne
  • Nos valeurs
  • Régions
  • Partenaires
  • Contact
  • Support
Services
  • Développement
  • Migration
  • Infogérance
  • Expertise
  • Formation
Menu
  • Développement
  • Migration
  • Infogérance
  • Expertise
  • Formation
Blog
  • Cloud
  • Infrastructures
  • Data
  • Intégration
  • Dev / DevOps
  • SAM / FinOps
  • Applications
Menu
  • Cloud
  • Infrastructures
  • Data
  • Intégration
  • Dev / DevOps
  • SAM / FinOps
  • Applications
Copyright 2018 - EASYTEAM, Tous droits réservés
Mentions légales
Politique de confidentialité​