Equivalent de <soapenv:Header> dans le monde REST
Bonjour à tous,
Je suis sur le point de réécrire un service web SOAP en REST, dans mon web service SOAP, j’ai plein de headers que je récupère derrière dans des intercepteurs CXF. Je cherche à savoir comment mettre en place une sorte de header à la SOAP avec du JAX-RS par exemple.
L’idée toute bête que j’ai eu c’est d’encapsuler le message dans des classes à moi : MyHeader et MyBody, ... par exemple, mais ça ne me parait pas du tout propre et je voudrai savoir comment faire cela proprement.
un exemple de header que j'utilise dans mes web services SOAP.
Code:
1 2 3 4 5 6
|
<namespace:Header>
<ns2:locks xmlns:ns2="http://xxx">
<version version="24" type="PERSON" id="1203221"/>
</ns2:locks>
</namespace:Header> |
Merci à vous :)
Réécriture de web service SOAP en REST : Gestion header
Je reviens vers vous pour éclaircir ma question :)
Dans l’état actuel de mon web service SOAP, j’ai une opération create permettant de créer une personne ( nom, prenom, sexe, …), j’ai aussi un objet Lock (lockId, objectId, version) que je passe dans l’entête de mon enveloppe SOAP et qui permet de gérer les accès concurrents sur l’invocation du web service.
Pour réécrire ce service en REST, j’ai pensée à créer des ressources Personne et Lock que j’encapsule dans une nouvelle ressource PersonneRequestResource lors de l’invocation du web service, sachant que j'aurai un intercepteur dans le quel je vais extraire mes deux ressource ...
lors de l’envoi d’une requete de creation d’une personne PersonneRequestResource
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
{
“personne” :
{
"nom": "Shakespeare",
"prenom": “William”,
"sexe": "M"
},
“”lock” :
{
“lockId” : “val1”
“objectId” : “val2”
“version” : “val3”
}
} |
Par ailleurs, j'ai regardé s'il existe une solution dans les API RESTful, mais pour l'instant je n'ai pas eu assez d'informations.
Est ce une bonne solution pour simuler les headers à la SOAP ? Est ce raisonnable de faire pareil pour les aspects liés à la sécurité ?
Je vous remercie d'avance.