Partager via


Soumissionnaires - Sémantique d’API

Cette page explique comment utiliser notre API REST de bus d’impression. Il inclut des informations sur :

  • Comment s’authentifier
  • Comment interroger un service sur lui-même : quels champs il prend en charge, quels champs peuvent être utilisés pour filtrer
  • Codes de réponse et erreurs

Remarque

Pour plus d’informations sur l’utilisation de services d’API spécifiques, consultez les liens disponibles dans API Services.

Protocole HTTP

L’API impression bus de Xandr prend en charge le protocole HTTP version 1.1 ou ultérieure. Bien que certains appels puissent fonctionner avec la version 1.0 déconseillée, cela n’est pas garanti. Vérifiez que votre client communique avec au moins la version 1.1.

Points de terminaison d’API

Environnement URL Remarques
Production https://api.adnxs.com Nous avons besoin d’utiliser un point de terminaison sécurisé (https://) pour notre API de production afin de garantir la confidentialité de vos données. L’accès non sécurisé à l’API de produit (HTTP) n’est pas disponible.

REST

Les services d’API Xandr sont « RESTful ». REST (Representational State Transfer) est un type d’architecture logicielle dans laquelle les demandes modélisent la communication entre un navigateur web et un serveur web. Voici les méthodes REST centrales utilisées dans les services d’API de Xandr et leurs utilisations :

REST, méthode Utilisation
POST créer/ajouter
GET lecture/récupération
PUT mettre à jour/modifier
SUPPRIMER delete

Dans notre documentation, nous utilisons cURL pour effectuer des requêtes REST. cURL est un outil en ligne de commande permettant de transférer des fichiers avec une syntaxe d’URL, prenant en charge FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS et FILE. Les exemples de scripts sur chaque page wiki d’API précisent la cURL structure des commandes dont vous aurez besoin pour exécuter les services d’API de Xandr.

Ajouter sur PUT

Pour PUT les demandes, seuls les champs inclus dans le fichier JSON sont mis à jour, sauf dans le cas des tableaux.

Lors de la mise à jour d’un tableau à l’aide PUTde , tous les champs du tableau sont remplacés par le contenu du nouveau tableau que vous chargez, sauf si vous ajoutez ceci à la chaîne de requête de votre requête : "append=true".

Méta-appels

Tous les services de soumissionnaire prennent en charge les méta-appels, qui retournent les champs du service et le type de valeur. Les méta-appels ressemblent à ceci :

$ curl -b cookies -c cookies 'https://api.adnxs.com/SERVICE/meta'

Par exemple (sortie partielle d’un méta-appel) :

            "bidder_id": {
                "type": "int"
            },
            "agent_id": {
                "type": "int"
            },
            "code": {
                "type": "string"
            },
            "active": {
                "type": "boolean"
            }

Limitation des GET enregistrements de requête

L’ajout de cette chaîne à la fin d’une requête GET à l’API limite le nombre d’enregistrements récupérés :

?start_element=N&num_elements=N

Exemples

segment/1?start_element=0&num_elements=1000
member?start_element=0&num_elements=100
creative/1?start_element=0&num_elements=200

Remarque

Le nombre maximal d’éléments pouvant être retournés indépendamment de votre demande est de 100.

  • Le premier élément est l’élément 0.
  • Toutes les réponses GET auront une propriété « count » indiquant le nombre total d’éléments correspondant à cette requête GET.
  • Cela s’applique également aux services qui ne sont pas des services de création de rapports, tels que le service de recherche créative, qui sont demandés avec des méthodes autres que les GET.

Filtrage et tri

La plupart des services d’API prennent en charge le filtrage et le tri. Le filtrage vous permet de spécifier un sous-ensemble d’objets à retourner. Le tri vous permet de contrôler l’ordre des objets retournés.

Obtenir plusieurs objets par ID

Vous pouvez obtenir plusieurs objets spécifiques par ID en passant une liste d’ID séparés par des virgules. L’objet de résultat contient un tableau contenant uniquement ces objets spécifiques. Dans l’exemple ci-dessous, nous demandons au service créatif uniquement les créatifs avec les ID 1, 2 et 3.

$ curl -bc -cc 'https://api.adnxs.com/creative?id=1,2,3
{ 
  "response" : {
     "count" : 3,
     "status" : "OK",
     "creatives" : [ ... ]
  }
}
      

Filtrer par ID

Transmettez un paramètre de chaîne de requête pour le champ avec une liste d’ID séparés par des virgules.

Exemple : Demander toutes les créations pour certains membres

$ curl -b cookies -c cookies 'https://api.adnxs.com/creative?member_id=123,987' 

Remarque

Le nombre maximal d’objets pouvant être retournés par requête, indépendamment de la pagination, est de 100. Si vous demandez plus de 100 objets, nous retournerons uniquement les 100 premiers objets et ne fournirons pas de message d’erreur.

Filtrer par Min valeurs et Max

Les champs du type , , ou money peuvent être filtrés par min et max. datedoubleint Par exemple :

$ curl -b cookies -c cookies 'https://api.adnxs.com/creative?min_id=47'
$ curl -b cookies -c cookies 'https://api.adnxs.com/creative?min_brand_id=20'

Les champs du type date peuvent être filtrés à l’aide du min_last_modified filtre . Notez la syntaxe de date/heure requise : AAAA-MM-JJ+HH :MM :SS

$ curl -b cookies 'https://api.adnxs.com/creative/114?min_last_activity=2017-10-27+21:00:00'

Filtrer par noms de champs

Pour limiter la réponse à des champs spécifiques d’un objet, transmettez le fields paramètre de chaîne de requête avec une liste de noms de champs séparés par des virgules. Par exemple :

$ curl -b cookies "https://api.adnxs.com/user/current&fields=username,user_type,id"
{
    "response":{
        "status":"OK",
        "count":1,
        "start_element":0,
        "num_elements":100,
        "user":{
            "id":14311,
             "username":"rloveland",
             "user_type":"admin"
        }
    }
}
  

Filtres d’erreur sur le champ

Nous prenons en charge les filtres supplémentaires basés sur les champs suivants sur les réponses d’API :

  • not_*
  • like_*
  • min_*
  • max_*
  • nmin_*
  • nmax_*
  • having_*
  • having_min_*
  • having_max_*

Exemple

$ curl -b cookies -c cookies 'https://api.adnxs.com/creative?like_[fieldName]=partialValue'

Valeurs de champ JSON

POST les requêtes et PUT nécessitent des données au format JSON. POST demande généralement créer des objets dans la base de données, et donc exiger toutes les informations sur cet objet (sauf s’il est modifié par la suite par une requête PUT). Pour PUT les demandes, seuls les champs JSON inclus dans une demande sont mis à jour. Tous les autres champs resteront inchangés.

Différents champs nécessitent différents types de valeurs.

Type Description Exemple
Tableau Plusieurs valeurs autorisées [87,45]
Valeur booléenne Vrai/Faux Vrai
Double Nombre à virgule flottante avec deux fois l’espace binaire d’un float. 3.12
Énum Un élément d’un tableau de valeurs préattribuées uniquement mâle/femelle
Flottant Nombre à virgule flottante 3.12
Int Entier 87
String(100) Chaîne de 100 caractères ou moins male_26_likes_cheese
Timestamp Chaîne de date et d’heure au format AAAA-MM-JJ HH :MM :SS 2009-01-14 05:41:04
Unsigned Entiers positifs uniquement 745

Authentification

Avant de pouvoir utiliser les API, vous devez vous authentifier avec votre nom d’utilisateur et votre mot de passe. Pour plus d’informations, consultez Service d’authentification .

Codes de réponse

Tous les services d’API retournent des données au format JSON. Lorsque les appels de service réussissent, la réponse JSON inclut un "status" champ défini sur "OK". La réponse aux appels POST et PUT inclut également l’ID de l’objet approprié, tel que soumissionnaire, membre, balise ou créatif, ainsi que tous les attributs pertinents de cet objet. (Dans l’exemple ci-dessous, nous utilisons des cookies pour stocker notre jeton d’authentification et ajouter le fichier « tag » au service tiny tag.)

$ curl -b cookies -c cookies -X POST --data-binary @tag https://api.adnxs.com/tt/32/
{
    "response": {
        "status": "OK",
        "id": "242"
    }
}

Erreurs

Quand une entrée non valide est envoyée à l’API ( par exemple, un mot de passe incorrect), une réponse JSON est retournée avec "error" les champs et "error_id" . Pour certaines conditions d’erreur, vous pouvez également voir les champs facultatifs "error_description" et "error_code" .

$ curl -b cookies -c cookies 'https://api.adnxs.com/api/auth?username=admin&password=Wr0ngP@ss'
{
    "response": {
        "error": "No match found for user\/pass",
        "error_id": "NOAUTH"
    }
}

Le "error" champ est utile à des fins de débogage, car il contient une description détaillée de l’erreur. Le "error_id" champ peut être utilisé par programme comme suit :

Error_ID Signification Logique
NOAUTH Les informations d’authentification sont manquantes ou non valides Utiliser /auth pour obtenir un jeton valide
UNAUTH L’utilisateur n’est pas autorisé à effectuer l’action demandée Vérifiez le message « erreur » et vérifiez que la logique est correcte dans le code
SYNTAXE La syntaxe de la requête est incorrecte Utilisez le message « erreur » pour identifier le problème et corriger le code
SYSTEM Une erreur système s’est produite Contactez Xandr
INTÉGRITÉ Une requête cliente est incohérente ; par exemple, une tentative de suppression d’un élément créatif par défaut attaché à un TinyTag actif Vérifier l’intégrité de la demande

Services d’API du soumissionnaire