Retour : page principale > sommaire eFlore v5 > eFlore API v0.1
Les différents cas de web service appelant d'autres web services :
Dans ce cadre là , il semble nécessaire de créer des classes métiers qui seront utilisés de façon jointe par les web services des projets les meta web services.
La mise en place d'un cache au niveaux systĂšme peut aussi ĂȘtre envisagĂ©. Les web services devront alors ĂȘtre paramĂštres pour prendre en considĂ©ration les entĂȘtes envoyĂ©s par le serveur web fournissant les web services.
Optimisation des web services
Suivant les projets de données l'optimisation se fera différemment en utilisant une ou plusieurs techniques proposées ici.Récursivité de l'appel des web services
La récursivité de l'appel des web services est à éviter à tout prix.Les différents cas de web service appelant d'autres web services :
- Au sein d'un mĂȘme projet, un web service ne doit jamais faire appel a un autre web service pour rĂ©cupĂ©rer des informations. A la place, crĂ©er une classe qui requetera directement les tables du projet et qui pourra ĂȘtre utilisĂ© par les diffĂ©rents web services du projet.
- Si un web service à besoin de contacter un web service d'un autre projet, il vaut mieux essayer d'utiliser une des solutions suivantes (présentées dans l'ordre de préférence) :
- Lors de l'intégration des données d'un projet, copier dans les tables du projet les informations de référence, qui changent peu, utilisées par les web service (nom de pays, de langue...)
- Créer une classe métier commune au deux projets qui réalisera les requetes
- Créer une table de référence au sein du projet qui est en demande de référence (Ex. table pour le CEL : cel_reference)
Appel successif du mĂȘme web service
Si vous avez besoin d'interroger un web service de trÚs nombreuses fois successive pour obtenir des informations, il vaut mieux modifier le web service pour qu'en 1 seule interrogation, il vous fournisse les différents enregistrement demandés.Application et web services
Si une application, nĂ©cessite de contacter plusieurs web services diffĂ©rents mais liĂ©s entre eux par leurs donnĂ©es (BDTF, NVJFL, CHORODEP, BASEFLORE...) il peut ĂȘtre intĂ©ressant de crĂ©er des "meta" web services qui fourniront des donnĂ©es appartenant Ă diffĂ©rent projets en piochant dans les tables des diffĂ©rents projets.Dans ce cadre lĂ , il semble nĂ©cessaire de crĂ©er des classes mĂ©tiers qui seront utilisĂ©s de façon jointe par les web services des projets les meta web services.
Réduction de la sollicitation de la base de données
VĂ©rifier les stats du site pour rechercher les urls des web services qui sont le plus sollicitĂ©. Faite en sorte que ces web services utilise un systĂšme de cache pour Ă©viter de trop solliciter la base de donnĂ©es.La mise en place d'un cache au niveaux systĂšme peut aussi ĂȘtre envisagĂ©. Les web services devront alors ĂȘtre paramĂštres pour prendre en considĂ©ration les entĂȘtes envoyĂ©s par le serveur web fournissant les web services.