Retour : page principale > sommaire eFlore v5 > eFlore API v0.1

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) :
    1. 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...)
    2. Créer une classe métier commune au deux projets qui réalisera les requetes
    3. 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.