Configurer un service fichier CSV
Nous allons configurer un service externe de type CSV.
Nous allons utiliser le fichier /var/www/mdf-api/referential/service.csv.
Le fichier est de la forme :
fournisseur;TVA
A Soft Software;FRXX123456789
Adirrp;FRXX123456790
Agile Infomedia;FRXX123456791
Aluchepips;FRXX123456792
Apixum;FRXX123456793
Le séparateur est ;.
La première ligne contient le nom des colonnes du csv (ici fournisseur et TVA).
L'encodage est en UTF-8 (sans BOM)
Configuration de l'agent délégué
Chaque service externe a besoin d'un agent délégué pour fonctionner. Un service CSV n'a pas besoin de paramétrage spécifique, un agent délégué quelconque suffit.
Configuration du service
Configuration via API
Nécessite au préalable le droit de création et de modification sur le service "csvService".
Attribuer les droits (création et mise à jour)
POST users/<UID>/set-access-controls
{
"agent":"/<delegate-agents>/<id de l'agent délégué>",
"accessRights":["create","update"],
"targetEntityType":"csvService"
}
Créer le service
POST csv-services
identifier : identifiant métier du service à créer
agent : UID de l'agent autorisé à utiliser le service
searchableFields : champs sur lesquels la recherche est activée
sortableFields : champs sur lesquels le tri est activé
responseFormat : mapping entre le nom des champs du fichier et ceux de la réponse souhaitée
(Nom du champ à utiliser pour la réponse : Nom du champ dans le fichier csv)
filePath : chemin d'accès du fichier csv
separator : caractère de séparation des champs du fichier csv
{
"identifier": "csv-service",
"agent": "/<delegate-agents>/<id de l'agent délégué à utiliser>",
"searchableFields": ["fournisseur"],
"sortableFields": ["fournisseur"],
"responseFormat": {
"fournisseur": "fournisseur",
"tva": "TVA"
},
"filePath": "/var/www/mdf-api/referential/service.csv",
"separator": ";"
}
Pour modifier le service si besoin :
PUT csv-services/<ID du service>
(Obtenir l'identifiant le cas échéant via la commande GET csv-services)
Configuration via fixtures
Mdm\ExternalService\Domain\CsvService:
csv-service:
identifier: 'csv-service'
agent: '@csv-mdm'
owner: '@bernard_blier->id'
searchableFields: ['fournisseur']
sortableFields: ['fournisseur']
responseFormat: {
"fournisseur": "fournisseur",
"tva": "TVA"
}
filePath: '/var/www/mdf-api/referential/service.csv'
separator: ";"
Pour plus d'information sur la structure du service, cliquer ici
Utiliser l'API pour la recherche
On peut maintenant rechercher dans le service CSV en faisant un appel à l'API :
GET /external-services/csv-service/search?founisseur=soft
Réponse :
Utiliser le service dans un modèle d'attributs
Il est possible maintenant d'utiliser ce service dans un modèle d'attributs, pour cela suivre la documentation disponible ici