Quable vous donne la possibilité de pousser vos médias via API.
Vous pouvez ajouter un média :
Soit avec un lien externe
soit en ajoutant votre fichier média dans le CDN Quable, avec un lien dit interne.
Avec un lien externe
Voici un exemple avec Python, qui appel l'API [POST] /api/assets
:
import requests
import json
url = "{{host}}/api/assets"
payload = json.dumps({
"id": "sweat-capuche-bleu",
"classification": {
"id": "dam_sort"
},
"attributes": {
"media_nom_photographe": {
"fr_FR": "John Doe"
}
},
"remotePath": "https://www.mydomain.com/myfile.jpg"
})
headers = {
'Accept': 'application/ld+json',
'Authorization': 'Bearer {{pim_token}}',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
À noter que, dans ce cas, le DAM Quable référence l'asset fourni, mais la source binaire du fichier reste l'URL que vous avez fourni (remotePath).
Avec un lien interne
Dans ce cas, il faut faire deux appels API :
le premier pour charger votre fichier média dans le stockage Quable
le second pour créer votre fiche média dans votre DAM
Charger votre fichier média
Voici un exemple avec Python, qui appel l'API [POST] /api/
files
:
import requests
url = "{{host}}/api/files"
payload={'fileType': 'asset'}
files=[
('file',('file',open('/path/to/file','rb'),'application/octet-stream'))
]
headers = {
'Authorization': 'Bearer {{pim_token}}'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
Un "id" est renvoyé dans la réponse JSON :
{
"id": "__ID__",
"name": "votre_nom_de_fichier.jpg",
"location": {
"container": "votre-instance-dam",
"filename": "98c0640d-dfbe-429f-9802-28f9ad7f9d54"
},
"metadatas": {
"mime_type": "image/jpg"
},
"status": "available",
"type": "asset",
"dateCreated": "2023-04-26T14:41:12+00:00",
"dateModified": "2023-04-26T14:41:12+00:00"
}
Associer ce fichier à un asset dans le DAM Quable
Vous utilisez ensuite cette ID pour créer une fiche média dans le DAM Quable, comme dans l'exemple ci-dessous :
import requests
import json
url = "{{host}}/api/assets"
payload = json.dumps({
"id": "sweat-capuche-bleu",
"file": {
"id": "__ID__"
},
"classification": {
"id": "dam_sort"
},
"attributes": {
"media_nom_photographe": {
"fr_FR": "John Doe"
}
}
})
headers = {
'Authorization': 'Bearer {{pim_token}}',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Dans ce cas, le lien de téléchargement de votre fiche média pointe vers le CDN de Quable. Il a le format suivant :