Blogue

Gestion des fichiers par API

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: xxxx.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:  xxxx.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: xxxx/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: xxxx/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",
[...]
}