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
    • Blog easyteam.fr
    • Blog Cloud Natives
  • 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
    • Blog easyteam.fr
    • Blog Cloud Natives
  • 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

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

Laisser un commentaire Annuler la réponse

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

Les derniers articles

  • Customiser le monitoring des ressources Weblogic avec JMX 01/03/2021
  • Modernisation d’Oracle SOA Suite 22/02/2021
  • SQL Server 2019 : nouveauté TDE 15/02/2021
  • Libérer de l’espace sur les serveurs Oracle Weblogic 08/02/2021
  • Perdre Un Nœud d’un Cluster Always On 01/02/2021

Les derniers commentaires

  • PEDRO dans Contention du listener : Comment désactiver la notification ?
  • SY dans Oracle Database 12c In-Memory: Configuration/Découverte de l’option
  • Jeancy dans Configurer la messagerie de l’Agent SQL Server en vue de l’utilisation de la messagerie de base de données
  • Libérer de l'espace sur les serveurs Oracle Weblogic - EASYTEAM dans "Dans le doute, reboot !" et si on rendait cela scriptable et modulable !
  • Arnaud dans OCI Designer Toolkit : Créer, visualiser et déployer vos environnements OCI graphiquement
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é​