Tags:
create new tag
, view all tags

API du serveur CDSPortal

Paramètres communs à tous les points d'entrée

Ci-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :

command

C'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.

sessionId

C'est l'identifiant de l'utilisateur. Ce paramètre est obligatoire.

format

Le format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut est xml. Le seul autre format reconnu est json.

outputFormat

Ce paramètre ne sert que pour la commande downloadTable. Il sert à indiquer dans quel format la VOTable doit être renvoyé. La casse n'a pas d'importance. Les valeurs possibles sont : vot, csv, tsv et fits.

Commandes reconnues

tables

Cette commande permet de récupérer la liste de toutes les VOTable que l'utilisateur a uploadé. Voici un exemple de réponse au format json.

{"cdsStore": {"tables": [
    {
        "date": "1473263765224",
        "fileName": "A2744CL-1",
        "metadata": {
            "coordinates": {
                "decUnit": "deg",
                "dec": "DEC",
                "raUnit": "deg",
                "errorType": "noError",
                "ra": "RA"
            },
            "comment": "bla bla bla"
        },
        "size": "6018",
        "nbRows": "1"
    },
    {
        "date": "1474374997438",
        "fileName": "csv-with-header.csv",
        "metadata": {
            "coordinates": {},
            "comment": "csv hide"
        },
        "size": "941",
        "nbRows": "3"
    }
]}}

S'il n'y a qu'une seule table, la valeur de tables n'est pas un tableau, mais un objet. Voici un exemple :

{"cdsStore": {"tables": {
    "date": "1474374997438",
    "fileName": "csv-with-header.csv",
    "metadata": {
        "coordinates": {},
        "comment": "csv hide"
    },
    "size": "941",
    "nbRows": "3"
}}}

S'il n'y a aucune table, un objet vide est rendu :

{"cdsStore": {}}

Dans le navigateur, pour obtenir systématiquement un tableau, vous pouvez écrire :

[].concat(cdsStore.tables);

L'objet coordinates existent toujours dans les métadatas, même s'il est vide. Cf l'exemple ci-dessus concernant le fichier csv-with-header.csv.

deleteTables

Cette commande permet de supprimer une table qui a été uploadé. La commande prend un seul argument, tables, qui contient la liste des noms des tables à supprimer, séparées par des slash ( / ).Ce caractère fait parti des caractères qui ne peuvent pas être dans le nom d'un fichier. Voir les commandes upload, uploadFromUrl et rename

La valeur rendue par la commande est toujours la suivante, même si on a demandé la suppression d'une table inexistante.

{"cdsStore": {}}

downloadTable

Cette commande permet de récupérer une table. Cette commande utilise l'argument général outputFormat. Le paramètre filename est obligatoire, et donne le nom du fichier à récupérer. En sortie, on récupère la VOTable dans le format qui a été spécifié par outputFormat.

updateTableComment

Cette commande permet de modifier le commentaire associé à une table. Le commentaire est stocké dans les métadonnées qui sont renvoyées lorsqu'on récupère la liste de toutes les tables.

Les arguments sont filename et comment. Ils sont obligatoires.

En résultat, la commande renvoie dans l'objet cdsPortal, un sous objet nommé commentUpdated, qui a comme valeur le nouveau commentaire.

updateCoordinatesMetadata

Cette commande permet de mettre à jour les informations sur les colonnes RA et DEC de la VOTable, ainsi que sur les colonnes d'erreurs associées. La liste des paramètres reconnus est

ra Nom de la colonne RA
dec Nom de la colonne DEC
raUnit Unité de la colonne RA. Valeurs possibles : deg ou sexa
decUnit Unité de la colonne DEC. Valeurs possible : deg ou sexa
errorType Type d'erreur, les valeurs possibles sont : noError, circular, polarEllipse, orientedEllipse, covarianceEllipse, correlationEllipse
raDecErr Colonne d'erreur si errorType vaut circular
raDecErrUnit Unité pour la colonne d'erreur dans le cas circular. Valeurs possibles : mas, arcsec, arcmin
raErr Colonne d'erreur si errorType vaut polarEllipse, covarianceEllipse ou correlationEllipse
raErrUnit Unité pour la colonne d'erreur dans les cas polarEllipse, covarianceEllipse ou correlationEllipse. Valeurs possibles : mas, arcsec, arcmin
decErr Colonne d'erreur si errorType vaut polarEllipse, covarianceEllipse ou correlationEllipse
decErrUnit Unité pour la colonne d'erreur dans les cas polarEllipse, covarianceEllipse ou correlationEllipse. Valeurs possibles : mas, arcsec, arcmin
minAxis Colonne d'erreur si errorType vaut orientedEllipse
minAxisUnit Unité pour la colonne d'erreur dans le cas orientedEllipse. Valeurs possibles : mas, arcsec, arcmin
majAxis Colonne d'erreur si errorType vaut orientedEllipse
majAxisUnit Unité pour la colonne d'erreur dans le cas orientedEllipse. Valeurs possibles : mas, arcsec, arcmin
posAngle Colonne contenant l'angle si errorType vaut orientedEllipse
posAngleUnit Unit pour la colonne d'angle si errorType vaut orientedEllipse, Valeurs possibles : deg, arc
covariance Colonne contenant la covariance dans le cas covarianceEllipse
correlation Colonne contenant la corrélation dans le cas correlationEllipse

Lors de la mise à jour de ces informations, aucune vérification n'est faite côté serveur sur les valeurs. Ces informations sont utilisées par le serveur de Xmatch.

tableMetadata

Cette commande permet de récupérer les informations concernant les colonnes d'une table. Le paramètre filename, indiquant pour quelle VOTable on veut le résultat, est obligatoire. Le résultat donne la liste de toutes les colonnes de la table, avec l'ucd de la colonne. Un exemple de résultat :

{"cdsStore": {"columns": [
    {
        "ucd": "meta.id;meta.main",
        "name": "ID"
    },
    {
        "ucd": "pos.eq.ra;meta.main",
        "name": "RA"
    },
    {
        "ucd": "pos.eq.dec;meta.main",
        "name": "DEC"
    },
    {
        "ucd": "phot.mag;em.opt.B",
        "name": "MAG_B435"
    },
    {
        "ucd": "phot.mag;em.opt.V",
        "name": "MAG_V606"
    },
    {
        "ucd": "stat.error;phot.mag;em.opt.B",
        "name": "MAGERR_B435"
    },
    {
        "ucd": "stat.error;phot.mag;em.opt.V",
        "name": "MAGERR_V606"
    }
]}}

Tout comme pour les tables, s'il n'y a qu'une seule colonne, la valeur de columns est un objet, pas un tableau.

rename

Cette commande permet de renommer un fichier. Les paramètres obligatoires (forcément en minuscule) sont :

filename : le nom actuel du fichier. Le nom est transformé, s'il contient des caractères interdits. Voir la commande upload pour plus de détails.

newname : le nouveau nom du fichier. Il ne faut pas qu'un autre fichier avec le nouveau nom existe, sinon une erreur est rendue.

En cas de succès, le résultat est :

{"cdsStore": {"rename": "ok"}} 

addThing

Cette commande permet d'ajouter un objet JSON. Le contenu de l'objet est absolument libre. Les paramètres obligatoires sont :

category : la category dans laquelle l'objet sera rangé. Le caractère virgule , est interdit dans le nom de la categorie.

id : un identifiant unique de l'objet, pour la catégorie en question. 2 catégories différentes peuvent contenir le même id.

value : la valeur de l'objet. C'est une chaîne de caractères qui doit contenir un objet json correctement formaté. L'ensemble de l'objet est sauvé, sans que le serveur regarde le contenu. La seule exception est la valeur de id. Lorsqu'on récupère une liste d'objets, cette valeur sera écrasée par l'identifiant donné par le paramètre id. La longueur maximum de la chaîne de caractères de la valeur est limitée. La limite actuelle est 2048 octets.

maxThings : ce paramètre optionnel indique le nombre maximum d'objets à garder dans cette catégorie. Si la limite est dépassée avec le nouveau objet qu'on ajoute, les plus anciens objets sont supprimés.

setThings

Cette commande remplace complètement tous les objets d'une catégorie par le ou les nouveaux objets passés avec la commande. Les paramètres obligatoires sont :

category : la category dans laquelle l'objet sera rangé. Le caractère virgule , est interdit dans le nom de la categorie.

value : la liste des nouveaux objets à stocker. C'est une chaîne de caractères qui doit contenir un objet json correctement formaté. Voici un exemple de format :

value={id10:{p33: v3, p44:v4},id11:{p1:v1}}

La commande renvoie le nombre d'objets ajoutés :

{"cdsStore": {"thingsSet": "2 things added."}}

things

Cette commande permet de récupérer tous les objets pour une catégorie donnée. category est un argument obligatoire. Il peut contenir une liste de noms de catégories que l'on veut récupérer, séparé par le caractère ,. L'identifiant de chaque objet est un mis à l'intérieur de l'objet qui a été donné lors de l'ajout. Voici un exemple de résultat, si on demande 2 catégories ( test-cat et prefs) :

{"cdsStore": {
    "test-cat": {
        "v": "c",
        "id": "id1"
    },
    "prefs": [
        {
            "p1": "v1",
            "p2": "v2",
            "id": "id1"
        },
        {
            "p3": "v3",
            "p4": "v4",
            "id": "identifier"
        }
    ]
}}

Comme pour les tables, lorsque la catégorie ne contient qu'une seule entrée, c'est un objet. S'il y a plusieurs entrées, c'est un tableau qui est récupéré.

La valeur d'un objet peut être un tableau. Par contre, il y a 2 restrictions. À l'intérieur d'un tableau, il faut des valeurs simples (pas de tableau ou un nouvel objet). Si le tableau ne contient qu'une seule valeur, alors cette valeur est renvoyée comme une valeur simple, et pas comme un tableau à une seule valeur.

deleteThing

Cette commande permet de supprimer un objet. Les paramètres category et id sont obligatoires. Voici un exemple de résultat rendu :

{"cdsStore": {"thingDeleted": {
    "id": "id1",
    "category": "prefs"
}}}

upload

Permet l'upload d'une VOTable. Le format du fichier d'entrée est automatiquement détecté, en utilisant la librairie STIL.

Les paramètres optionnels sont comment et origin. La valeur par défaut de origin est Upload. La valeur de comment, si présente, est stockée dans les métadonnées.

4 caractères sont interdits dans les noms des fichiers : /, &, < et ,. Ces 4 caractères sont remplacés par un _ au moment du upload.

uploadFromUrl

Permet l'upload d'un catalogue, en donnant l'URL depuis laquelle obtenir le catalogue.

Les paramètres obligatoires sont url et filename. Le code est le même que pour la commande upload. Il y a donc les mêmes paramètres optionnels, et les mêmes transformations concernant d'éventuels caractères interdits.

Le résultat a le format :

{"cdsStore": {"uploadFromUrl": "ok"}} 

Et en cas d'erreur :

{"cdsStore": {"error": "Error while uploading from url: http://cdsarc.u-strasbg.fr/viz-bin/vizgraph= =?-s=I/337&-i=.graph_sql&Source=4659456740670442752&file=fov.dat&--output=votable"}}

-- PascalWassong - 2016-09-20

Topic revision: r14 - 2016-10-13 - PascalWassong
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback