Ce document explique comment gérer les hôtes dans l’API Reactor. Pour plus d’informations sur les hôtes pour les balises, consultez le guide sur la présentation des hôtes dans la documentation de publication.
Dans l’API Reactor, un hôte définit une destination où une version peut être diffusée.
Lorsquʼune version est demandée par un utilisateur de balises dans Adobe Experience Platform, le système vérifie la bibliothèque pour déterminer dans quel environnement celle-ci doit être créée. Chaque environnement entretient une relation avec un hôte, indiquant où diffuser la version.
Un hôte appartient à une seule propriété, tandis qu’une propriété peut avoir de nombreux hôtes. Une propriété doit comporter au moins un hôte avant de pouvoir publier.
Un hôte peut être utilisé par plusieurs environnements au sein d’une propriété. Il est courant de disposer d’un seul hôte sur une propriété et de faire en sorte que tous les environnements de cette propriété utilisent le même hôte.
Le point d’entrée utilisé dans ce guide fait partie de lʼAPI Reactor. Avant de poursuivre, consultez le guide de prise en main pour obtenir des informations importantes sur la façon de s’authentifier auprès de l’API.
Vous pouvez récupérer une liste d’hôtes pour une propriété en incluant l’identifiant de la propriété dans le chemin d’accès d’une requête GET.
Format d’API
GET /properties/{PROPERTY_ID}/hosts
Paramètre | Description |
---|---|
PROPERTY_ID |
Le id de la propriété propriétaire des hôtes. |
À l’aide des paramètres de requête, les hôtes répertoriés peuvent être filtrés en fonction des attributs suivants :
created_at
name
type_of
updated_at
Requête
curl -X GET \
https://reactor.adobe.io/properties/PRd428c2a25caa4b32af61495f5809b737/hosts \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-H 'Accept: application/vnd.api+json;revision=1'
Réponse
Une réponse réussie renvoie une liste d’hôtes pour la propriété spécifiée.
{
"data": [
{
"id": "HT405b8d9306004eb38106e66c8a4afc09",
"type": "hosts",
"attributes": {
"created_at": "2020-12-14T17:42:35.239Z",
"server": null,
"name": "Example Akamai Host",
"path": null,
"port": null,
"status": "succeeded",
"type_of": "akamai",
"updated_at": "2020-12-14T17:42:35.239Z",
"username": null
},
"relationships": {
"property": {
"links": {
"related": "https://reactor.adobe.io/hosts/HT405b8d9306004eb38106e66c8a4afc09/property"
},
"data": {
"id": "PRd428c2a25caa4b32af61495f5809b737",
"type": "properties"
}
}
},
"links": {
"property": "https://reactor.adobe.io/properties/PRd428c2a25caa4b32af61495f5809b737",
"self": "https://reactor.adobe.io/hosts/HT405b8d9306004eb38106e66c8a4afc09"
}
}
],
"meta": {
"pagination": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 1
}
}
}
Vous pouvez rechercher un hôte en fournissant son identifiant dans le chemin d’accès d’une requête GET.
Format d’API
GET /hosts/{HOST_ID}
Paramètre | Description |
---|---|
HOST_ID |
Le id de l’hôte que vous voulez rechercher. |
Requête
curl -X GET \
https://reactor.adobe.io/hosts/HT5d90148e72224224aac9bc0b01498b84 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-H 'Accept: application/vnd.api+json;revision=1'
Réponse
Une réponse réussie renvoie les détails de l’hôte.
{
"data": {
"id": "HT5d90148e72224224aac9bc0b01498b84",
"type": "hosts",
"attributes": {
"created_at": "2020-12-14T17:42:25.353Z",
"server": "https://server.example.com",
"name": "Example Akamai Host",
"path": "/akamai",
"port": 8000,
"status": "succeeded",
"type_of": "akamai",
"updated_at": "2020-12-14T17:42:25.353Z",
"username": null
},
"relationships": {
"property": {
"links": {
"related": "https://reactor.adobe.io/hosts/HT5d90148e72224224aac9bc0b01498b84/property"
},
"data": {
"id": "PRd7cf174259f34057b5c435ef873a79bf",
"type": "properties"
}
}
},
"links": {
"property": "https://reactor.adobe.io/properties/PRd7cf174259f34057b5c435ef873a79bf",
"self": "https://reactor.adobe.io/hosts/HT5d90148e72224224aac9bc0b01498b84"
}
}
}
Vous pouvez créer un hôte en effectuant une requête POST.
Format d’API
POST /properties/{PROPERTY_ID}/hosts
Paramètre | Description |
---|---|
PROPERTY_ID |
Le id de la propriété sous laquelle vous définissez l’hôte. |
Requête
La requête suivante crée un hôte pour la propriété spécifiée. L’appel associe également l’hôte à une extension existante par le biais de la propriété relationships
. Pour plus d’informations, consultez le guide sur les relations.
curl -X POST \
https://reactor.adobe.io/properties/PRb25a704c0b7c4562835ccdf96d3afd31/hosts \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"attributes": {
"name": "Example SFTP Host",
"type_of": "sftp",
"username": "John Doe",
"encrypted_private_key": "{PRIVATE_KEY}",
"server": "https://example.com",
"skip_symlinks": true,
"path": "assets",
"port": 22
},
"type": "hosts"
}
}'
Propriété | Description |
---|---|
attributes.name |
(Obligatoire) Nom de l’hôte, lisible par l’utilisateur. |
attributes.type_of |
(Obligatoire) Type d’hôte. Il peut s’agir de l’une des deux options suivantes :
|
attributes.encrypted_private_key |
Clé privée facultative à utiliser pour l’authentification de l’hôte. |
attributes.path |
Chemin d’accès à ajouter à l’URL server . |
attributes.port |
Nombre entier indiquant le port de serveur spécifique à utiliser. |
attributes.server |
URL hôte du serveur. |
attributes.skip_symlinks (Pour les hôtes SFTP uniquement) |
Par défaut, tous les hôtes SFTP utilisent des liens symboliques (symlinks) pour référencer les versions de bibliothèque enregistrées sur le serveur. Cependant, tous les serveurs ne prennent pas en charge l’utilisation de liens symboliques. Lorsque cet attribut est inclus et défini sur true , l’hôte utilise une opération de copie pour mettre à jour les ressources de création directement au lieu d’utiliser des liens symboliques. |
attributes.username |
Nom d’utilisateur facultatif pour l’authentification. |
type |
Le type de ressource en cours de mise à jour. Pour ce point d’entrée, la valeur doit être hosts . |
Réponse
Une réponse réussie renvoie les détails de l’hôte nouvellement créé.
{
"data": {
"id": "HT69bfe634dead4a9a8c659f5d4d94cecd",
"type": "hosts",
"attributes": {
"created_at": "2020-12-14T17:42:07.033Z",
"server": "//example.com",
"name": "Example SFTP Host",
"path": "assets",
"port": 22,
"status": "pending",
"skip_symlinks": true,
"type_of": "sftp",
"updated_at": "2020-12-14T17:42:07.033Z",
"username": "John Doe"
},
"relationships": {
"property": {
"links": {
"related": "https://reactor.adobe.io/hosts/HT69bfe634dead4a9a8c659f5d4d94cecd/property"
},
"data": {
"id": "PRb25a704c0b7c4562835ccdf96d3afd31",
"type": "properties"
}
}
},
"links": {
"property": "https://reactor.adobe.io/properties/PRb25a704c0b7c4562835ccdf96d3afd31",
"self": "https://reactor.adobe.io/hosts/HT69bfe634dead4a9a8c659f5d4d94cecd"
}
}
}
Seuls les hôtes SFTP peuvent être mis à jour.
Vous pouvez mettre à jour un hôte en incluant son identifiant dans le chemin d’accès d’une requête PATCH.
Format d’API
PATCH /hosts/{HOST_ID}
Paramètre | Description |
---|---|
HOST_ID |
Le id de l’hôte que vous voulez mettre à jour. |
Requête
La requête suivante met à jour le name
pour un hôte existant.
curl -X PATCH \
https://reactor.adobe.io/hosts/HT5d90148e72224224aac9bc0b01498b84 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"attributes": {
"name": "New host Name"
},
"id": "HT5d90148e72224224aac9bc0b01498b84",
"type": "hosts"
}
}'
Propriété | Description |
---|---|
attributes |
Objet dont les propriétés représentent les attributs à mettre à jour pour l’hôte. Les attributs suivants peuvent être mis à jour pour un hôte :
|
id |
Le id de l’hôte que vous voulez mettre à jour. Il doit correspondre à la valeur {HOST_ID} fournie dans le chemin de requête. |
type |
Le type de ressource en cours de mise à jour. Pour ce point d’entrée, la valeur doit être hosts . |
Réponse
Une réponse réussie renvoie les détails de l'hôte mis à jour.
{
"data": {
"id": "HTb14e136a6fe147459b298a4645d2a6f5",
"type": "hosts",
"attributes": {
"created_at": "2020-12-14T17:42:45.087Z",
"server": null,
"name": "My SFTP host",
"path": null,
"port": null,
"status": "succeeded",
"skip_symlinks": true,
"type_of": "sftp",
"updated_at": "2020-12-14T17:42:45.696Z",
"username": null
},
"relationships": {
"property": {
"links": {
"related": "https://reactor.adobe.io/hosts/HTb14e136a6fe147459b298a4645d2a6f5/property"
},
"data": {
"id": "PR8f240526f7b54a4dbd46965e79519fde",
"type": "properties"
}
}
},
"links": {
"property": "https://reactor.adobe.io/properties/PR8f240526f7b54a4dbd46965e79519fde",
"self": "https://reactor.adobe.io/hosts/HTb14e136a6fe147459b298a4645d2a6f5"
}
}
}
Vous pouvez supprimer un hôte en incluant son identifiant dans le chemin dʼaccès dʼune requête DELETE.
Format d’API
DELETE /hosts/{HOST_ID}
Paramètre | Description |
---|---|
HOST_ID |
Le id de lʼhôte que vous voulez supprimer. |
Requête
curl -X DELETE \
https://reactor.adobe.io/hosts/HT5d90148e72224224aac9bc0b01498b84 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}'
Réponse
Une réponse réussie renvoie un état HTTP 204 (No Content) sans corps de réponse, indiquant que l’hôte a été supprimé.
Les appels suivants montrent la marche à suivre pour récupérer les ressources associées à un hôte. Lorsque vous recherchez un hôte, ces relations sont répertoriées sous la propriété relationships
.
Pour plus d’informations sur les relations dans l’API Reactor, consultez le guide des relations.
Vous pouvez rechercher la propriété propriétaire d’un hôte en ajoutant /property
au chemin d’accès d’une requête de recherche.
Format d’API
GET /hosts/{HOST_ID}/property
Paramètre | Description |
---|---|
{HOST_ID} |
Champ id de lʼhôte dont vous souhaitez rechercher la propriété. |
Requête
curl -X GET \
https://reactor.adobe.io/hosts/HT5d90148e72224224aac9bc0b01498b84/property \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-H 'Accept: application/vnd.api+json;revision=1'
Réponse
Une réponse réussie renvoie les détails de la propriété de lʼhôte spécifié.
{
"data": {
"id": "PRbdfaffb7bf374b87be50e672f0cf9309",
"type": "properties",
"attributes": {
"created_at": "2020-12-14T17:52:05.900Z",
"enabled": true,
"name": "Kessel Example Property",
"updated_at": "2020-12-14T17:52:05.900Z",
"platform": "web",
"development": false,
"token": "47d65c7c98db",
"domains": [
"example.com"
],
"undefined_vars_return_empty": false,
"rule_component_sequencing_enabled": false
},
"relationships": {
"company": {
"links": {
"related": "https://reactor.adobe.io/properties/PRbdfaffb7bf374b87be50e672f0cf9309/company"
},
"data": {
"id": "CO2bf094214ffd4785bb4bcf88c952a7c1",
"type": "companies"
}
},
"callbacks": {
"links": {
"related": "https://reactor.adobe.io/properties/PRbdfaffb7bf374b87be50e672f0cf9309/callbacks"
}
},
"hosts": {
"links": {
"related": "https://reactor.adobe.io/properties/PRbdfaffb7bf374b87be50e672f0cf9309/hosts"
}
},
"environments": {
"links": {
"related": "https://reactor.adobe.io/properties/PRbdfaffb7bf374b87be50e672f0cf9309/environments"
}
},
"libraries": {
"links": {
"related": "https://reactor.adobe.io/properties/PRbdfaffb7bf374b87be50e672f0cf9309/libraries"
}
},
"data_elements": {
"links": {
"related": "https://reactor.adobe.io/properties/PRbdfaffb7bf374b87be50e672f0cf9309/data_elements"
}
},
"extensions": {
"links": {
"related": "https://reactor.adobe.io/properties/PRbdfaffb7bf374b87be50e672f0cf9309/extensions"
}
},
"rules": {
"links": {
"related": "https://reactor.adobe.io/properties/PRbdfaffb7bf374b87be50e672f0cf9309/rules"
}
},
"notes": {
"links": {
"related": "https://reactor.adobe.io/properties/PRbdfaffb7bf374b87be50e672f0cf9309/notes"
}
}
},
"links": {
"company": "https://reactor.adobe.io/companies/CO2bf094214ffd4785bb4bcf88c952a7c1",
"data_elements": "https://reactor.adobe.io/properties/PRbdfaffb7bf374b87be50e672f0cf9309/data_elements",
"environments": "https://reactor.adobe.io/properties/PRbdfaffb7bf374b87be50e672f0cf9309/environments",
"extensions": "https://reactor.adobe.io/properties/PRbdfaffb7bf374b87be50e672f0cf9309/extensions",
"rules": "https://reactor.adobe.io/properties/PRbdfaffb7bf374b87be50e672f0cf9309/rules",
"self": "https://reactor.adobe.io/properties/PRbdfaffb7bf374b87be50e672f0cf9309"
},
"meta": {
"rights": [
"approve",
"develop",
"manage_environments",
"manage_extensions",
"publish"
]
}
}
}