Un changement majeur du schema apparait lors de la version 3.6 dans le stockage des valeurs de champs. Les valeurs de champs multivalués étaient auparavant stockées sérialisées. Elles sont désormais stockées indépendamment les unes des autres.
Ce changement permet une amélioration majeure : le stockage de ressources (Utilisateurs, Geonames, Entrée de thésaurus...) dans un champ multivalué.
La conséquence majeure réside dans les deux routes d’API records/metadatas et records/setmetadatas, donc le passage de l’API en version 1.1.
La route records/metadatas renvoyait auparavant les métadonnées sous la forme :
"6272": { //champ monovalue "meta_id": 6272, "meta_structure_id": 2, "name": "Categorie", "value": "paysages" }, "6273": { //champ multivalue "meta_id": 6273, "meta_structure_id": 4, "name": "MotsCles", "value": [ "ciel", "météo", "nuage" ] }La réponse records/metadatas est maintenant sous la forme :
"6272": { //valeur du champ monovalue "meta_id": 6272, "meta_structure_id": 2, "name": "Categorie", "value": "paysages" }, "6273": { //valeur de champ multivalue "meta_id": 6273, "meta_structure_id": 4, "name": "MotsCles", "value": "ciel" }, "6274": { //valeur de champ multivalue "meta_id": 6274, "meta_structure_id": 4, "name": "MotsCles", "value": "météo" }, "6275": { //valeur de champ multivalue "meta_id": 6275, "meta_structure_id": 4, "name": "MotsCles", "value": "nuage" }
La route records/setmetadatas fonctionnait auparavant sous la forme :
metadatas = { //Ajout d'un champ mono valué { meta_struct_id: 1, meta_id: null, value : [ 'A pretty string' ] }, //update d'un champ multivalué { meta_struct_id: 3, meta_id: 487, value: [ 'one key word', 'two key word' ] }, //suppression d'un champ { meta_struct_id: 7, meta_id: 489, value: [] } }Désormais, il faut l’utiliser de la manière suivante :
metadatas = { //Ajout d'un champ mono valué { meta_struct_id: 1, meta_id: "", value : 'A pretty string' }, //update d'une valeur de champ multivalué { meta_struct_id: 3, //champ multivalué meta_id: 487, value: 'one key word' }, //ajout d'une valeur dans un champ multivalué { meta_struct_id: 3, //champ multivalué meta_id: "", value: 'second key word' }, //suppression d'une valeur d'un champ multivalué { meta_struct_id: 3, //champ multivalué meta_id: 487, value: "" }, //suppression d'une valeur dans un champ monovalué { meta_struct_id: 7, meta_id: 489, value: "" } }