Subversion Repositories eFlore/Projets.eflore-projets

Rev

Go to most recent revision | Show changed files | Directory listing | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
839 4091 d 1 h raphael /trunk/ revert r838 (commit problem)  
838 4091 d 1 h raphael /trunk/ misc: ajout Changelog  
837 4091 d 2 h raphael /trunk/services/modules/0.1/commun/ meta-données: ajout d'un cache pour les ontologies redondantes  
836 4091 d 5 h raphael /trunk/services/modules/0.1/baseflor/ baseflor: Support des requêtes ontologies multiplexées.
Le code des ontologies communes aux référentiels (bdnt) et celui des
ontologies baseflor était à l'origine *quasi-similaire*.

Ainsi à l'aide d'un peu de fuzzing et quelques tweaks, le patch représentant
l'historique du passage au multiplexage pour les ontologies bdnt s'applique
à baseflor:
$ svn diff -r300:HEAD services/modules/0.1/commun/Ontologies.php|patch -p4 -F3

Un peu de contexte: les ontologies baseflor sont nécessaires:
* lors de l'affichage de l'onglet "écologie" d'eflore consultation
* plus précisément dans les graphiques
* plus précisément encore dans les légendes

Ainsi ce n'était pas moins de 94 requêtes HTTP (moyenne) qui étaient
effectuées sur le modèle suivant:
/service:eflore:0.1/baseflor/ontologies/VES:8
/service:eflore:0.1/baseflor/ontologies/VEC:6
...

Avec ce commit il est désormais possible de multiplexer les critères:
/service:eflore:0.1/baseflor/ontologies/VEL:1,VEL:2,VEL:3,VEL:4,VEL:5,VEL:6,VEL:7,VEL:8 ...
Les valeurs sont retournées dans un tableau indexé par critère, eg:
{ "VEHE:7": { ... }, "VER:7": { ... } }

Le côté client sera implémenté dans:
eflore consultation: metier/api_0.1/Graphiques.php

TODO: tests phpunit
 
835 4092 d 0 h raphael /trunk/services/tests/0.1/nvjfl/ tests: oublie d'un fichier (suite r834)  
834 4092 d 0 h raphael /trunk/services/tests/0.1/ tests: ajout de plusieurs tests relatifs aux ontologies:
* relatifs aux ontologies bdnt (ontologies communes aux ontologies de référentiel)
* relatifs aux ontologies bdnt multiplexés (plusieurs paramètres séparés par des virgules)
* relatifs aux ontologies nvjfl multiplexées (cf r832 eflore/projet)
+ bugfix de tests existants.

==> 8 failures (api 0.1 uniquement)
 
833 4092 d 0 h raphael /trunk/services/tests/0.1/ tests: optionnalité du passage des paramètres dans l'utilisation de l'API de test  
832 4092 d 0 h raphael /trunk/services/modules/0.1/nvjfl/ nom-vernaculaires: multiplexage des requêtes ontologiques amélioré [ontologie "genre" pris en compte]

Les requêtes multi-critères sont désormais utilisées pour plusieurs ontologies différentes, du moment
que le webservice distant est le même. Ainsi les performances sont augmentées significativement
lors plusieurs retour.champs appartement à un même webservice d'ontologies sont demandés.

Exemple, pour le taxon nt=1382, la langue français lg=fra et les retour.champs=conseil_emploi,genre:
(/nvjfl/noms-vernaculaires/attributions?masque.nt=1382&masque.lg=fra&retour.champs=conseil_emploi,genre&navigation.limite=4)

La requête d'ontologies interne est désormais:
* /nvjfl/ontologies/numStatut:1,genreNombre:11,genreNombre:10

Alors qu'auparavant elle aurait induit:
* /nvjfl/ontologies/numStatut:1 # multiplage actif, mais une seule valeur pour cette ontologie
* /nvjfl/ontologies/genreNombre:11 # ontologie différente (non-multiplexé par ailleurs)
* /nvjfl/ontologies/genreNombre:10 # idem
 
831 4092 d 1 h raphael /trunk/services/modules/0.1/nvjfl/ nvjfl: ontologies, 2 bugfixes
1) l'attribut _result_ontologies@nvjfl était présent dans le JSON renvoyé à cause
de l'utilisation de isset() sur une valeur de tableau existante mais NULL.
array_key_exists() devait être utilisé

2) Lorsque la recherche d'ontologies est nécessaire, mais que 1 seule l'est, le
JSON d'ontologies renvoyé n'a pas la même structure (il n'est pas indexé par critère
de requête). Ce cas n'était pas traité correctement ce qui amenait à retourner un
"conseil_emploi" NULL.
exemple d'URL: /nvjfl//noms-vernaculaires/attributions?masque.nt=1382&masque.lg=fra&retour.champs=conseil_emploi&navigation.limite=2
 
830 4092 d 5 h raphael /trunk/services/modules/0.1/commun/ aide: en cas d'erreur, ne pas générer d'E_NOTICE de variable non-existente ce qui ne pourrait qu'amplifier le problème  
829 4092 d 6 h raphael /trunk/scripts/modules/cel/ cel: scripts: amélioration du Makefile pour générer un fichier SQL plutôt que le lancer, exemple: `make o_maj1 alterdb=tb_cel annuairedb=mydb bdtxa=1_01` puis utiliser maj1.comp.sql pour la mise à jour  
828 4092 d 8 h raphael /trunk/scripts/modules/cel/ cel: scripts: généricisation des noms de table bdtfx/bdtxa (en précision des changements de n° de version)  
827 4094 d 0 h raphael /trunk/scripts/modules/eflore/ eflore: (script/doc): ajout d'un script de récupération des données eFlore en bootstrappant le framework et instanciant une Fiche()  
826 4094 d 5 h raphael /trunk/services/tests/0.1/cel/ tests: cel: ajout d'un test sur une date antérieure à 1901 (php 64 bits) associée à une image Cel  
825 4094 d 5 h raphael /trunk/services/tests/0.1/baseflor/ tests: baseflor: ajout d'un test sur /baseflor/informations/bdtfx.nn:XXX/relations/catminat  
824 4094 d 5 h raphael /trunk/scripts/ scripts: ajout d'un fichier htaccess par défaut  
823 4094 d 5 h raphael /trunk/scripts/modules/cel/ cel: scripts/Makefile: ajout d'une macro pour tester l'existence de table avant leur utilisation par un script SQL  
822 4094 d 6 h raphael /trunk/scripts/modules/cel/ cel: scripts/Makefile: ajout de tests pour savoir si une maj a été effectuée ou non et la lancer si nécessaire  
821 4094 d 7 h raphael /trunk/scripts/modules/cel/ cel: scripts/Makefile: ajout de test pour savoir si une maj a été effectuée ou non  
820 4094 d 7 h raphael /trunk/scripts/modules/cel/ cel: scripts: mise à jour du Makefile  

Show All