Pourquoi utiliser la gestion de fichier par API ?
L’utilisation de l’API peut être utile dans plusieurs situations.
En voici un exemple:
Prenons la compagnie « ABC Meuble ». Cette compagnie veut ajouter un offre de service sur une vente provenant d’un autre système. C’est possible de le faire à l’aide de requêtes API. C’est très efficace et permet la synchronisation entre les deux systèmes.
Les actions suivantes sont les actions possibles actuellement avec les fichiers dans l’API v3.
Upload de fichier dans un entité
Sert à upload un fichier directement dans un entité.
À noter que la taille du fichier doit être inférieure à 1.5mb.
Method: POST
URL: xxx.phpreaction.com/platform/v3/{entity}/{id}/file/upload?access_token={access_token}
ex: demo.phpreaction.com/platform/v3/products/4/file/upload?access_token={jeton d’accès ici}
file: doit être en base64: https://www.browserling.com/tools/file-to-base64
subfolder: Important de suivre le standard des entity: /entity/id
filename: le nom du fichier upload AVANT le code unique
Récupérer la liste des fichiers d'un entité
Récupère la liste des fichiés liés à l’entité.
Method: GET
URL: xxx.phpreaction.com/platform/v3/{entity}/fetch_files/{id}?access_token={access_token}
ex: demo.phpreaction.com/platform/v3/products/fetch_files/4?access_token={jeton d’accès ici}
Response:
"@context": "/platform/v3/contexts/products",
"@id": "/platform/v3/products",
"@type": "hydra:Collection",
"hydra:member": [
"/platform/v3/storage_files/cHJvZHVjdC80LzEucG5n/bin_from_path",
"/platform/v3/storage_files/cHJvZHVjdC80LzVlZDgwNjNjMzc4YTBfNWVkODA2M2I3YTc0YV9DaHJvbWUtRW5hYmxlLnBuZw==/bin_from_path",
"/platform/v3/storage_files/cHJvZHVjdC80LzVlZDgwNjdjOGI0M2RfNWVkODA2N2I4NGI5Y19DaHJvbWUtRW5hYmxlLnBuZw==/bin_from_path",
"/platform/v3/storage_files/cHJvZHVjdC80LzVlZDk4ZmZlZTRlZWVfNWVkOThmZmU5ZWYxMl9hLmpzb24=/bin_from_path"
],
"hydra:totalItems": 4,
"hydra:view": {
"@id": "/platform/v3/products/fetch_files/4?access_token=ODFlZTY5MjQyMTNlMjVmYzZkNmE4NmMxYTZmODA4NjZmM2JkN2I4OWM0ZTBhYzc5ZDUzOTVlYmQ2Mjc1YzE3Mw",
"@type": "hydra:PartialCollectionView"
},
Upload de fichier dans le système
Requête pour upload un fichier dans le système.
À noter que la taille du fichier doit être inférieure à 1.5mb.
Method: POST
URL: xxx.phpreaction.com/platform/v3/storage_files?access_token={access_token}
ex: demo.phpreaction.com/platform/v3/storage_files?access_token={jeton d’accès ici}
file: doit être en base64: https://www.browserling.com/tools/file-to-base64
subfolder: Important de suivre le standard des entity: /entity/id
filename: le nom du fichier upload AVANT le code unique
Upload de fichier "form" dans le système
Upload de fichier utilisant une requête avec un body « form-data »
À noter que la taille du fichier doit être inférieure à 1.5mb.
Method: POST
URL: xxx.phpreaction.com/platform/v3/storage_files/form?access_token={access_token}
ex: demo.phpreaction.com/platform/v3/storage_files/form?access_token={jeton d’accès ici}
Body: The body should be of form-data type and the form should contain ‘file’ as a FileType and ‘subfolder’ as a string input
Obtenir une réponse de fichier binaire
Cette requête retourne directement le fichier dans la réponse (en binary).
L’URI du fichier en binary est aussi inscrit dans la propriété « fileResponseLink » dans les requêtes « show » et « listing ».
Method: GET
URL: xxxx/platform/v3/storage_files/{id}/bin?access_token={access_token}
ex: demo.phpreaction.com/platform/v3/storage_files/20/bin?access_token={jeton d’accès ici}
Ajouter un fichier directement dans une relation d'un entité
Cette action n’est pas une requête, mais une possibilité pour lié directement un fichier à un entité.
Exemple: Je veux ajouter une image à une vente.
Une façon simple d’ajouter l’image est d’editer la vente (par api) et dans le JSON de la requête, mettre le URI de la ressource, comme indiqué dans le bloc de code suivant:
{
[...]
'image': "/platform/v3/storage_files/1",
[...]
}