Closed Inrap closed 8 months ago
Juste après la création, GET /datastores/{datastore}/configurations ne retourne rien ? Vous avez parlé de l'appel à GET /datastores/{datastore}, c'est une erreur de frappe ou ce que vous avez réellement fait ? Vérifiez qu'il n'y a pas un filtre activé (paramètre de requête type).
L'identifiant de la configuration créée est normalement dans la réponse du POST de création (champ _id).
juste pour être sûr : quelle est la requête POST de création concrètement dans le tuto ? J'ai peut-être raté l'étape vu que GET /datastores/{datastore}/configurations retourne []. 🤔
C'est la requête présentée ici qui crée la configuration en WFS.
POST /datastores/{datastore}/configurations Corps de requête JSON
{
"type": "WFS",
"name": "Pays et écorégions",
"layer_name": "pays_ecoregions",
"type_infos": {
"bbox": {
"west": -175,
"south": -75,
"east": 175,
"north": 85
},
"used_data": [
{
"relations": [
{
"native_name": "ecoregions",
"public_name": "regions_ecologiques",
"title": "Régions écologiques",
"keywords": [
"Tutoriel", "Données mondiales"
],
"abstract": "Grandes régions naturelles mondiales"
},
{
"native_name": "pays",
"title": "Pays du monde",
"keywords": [
"Tutoriel", "Données mondiales"
],
"abstract": "Pays du monde"
}
],
"stored_data": "{stored data}"
}
]
}
}
quand j’exécute POST /datastores/{datastore}/configurations avec l'id de mon entrepôt, j'obtiens :
curl -X 'POST' \
'https://data.geopf.fr/api/datastores/70613ab0-b0ce-4673-87a4-587bd4fb7476/configurations' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"type": "WFS",
"name": "Pays et écorégions",
"layer_name": "pays_ecoregions",
"type_infos": {
"bbox": {
"west": -175,
"south": -75,
"east": 175,
"north": 85
},
"used_data": [
{
"relations": [
{
"native_name": "ecoregions",
"public_name": "regions_ecologiques",
"title": "Régions écologiques",
"keywords": [
"Tutoriel", "Données mondiales"
],
"abstract": "Grandes régions naturelles mondiales"
},
{
"native_name": "pays",
"title": "Pays du monde",
"keywords": [
"Tutoriel", "Données mondiales"
],
"abstract": "Pays du monde"
}
],
"stored_data": ""
}
]
}
}
et je ne trouve pas l'id de la config.
Cet appel n'a pas de réponse ?
C'est le copier/coller dans mon message juste au-dessus.
Dans votre message c'est le corps de la requête que vous envoyez. L'ID de l'entité créée est dans le corps de la réponse.
oups effectivement n'importe quoi, voilà la vraie réponse :
{
"error": "Conflict",
"error_description": [
"layer_name déjà utilisé pour ce type de données dans la Géoplateforme"
]
}
et c'est voyant cette réponse que j'ai voulu exécuter GET /datastores/{datastore}/configurations pour retrouver l'id de la création existante et que la réponse est [].
L'unicité du layername est global à toute la plateforme (pour un type de configuration). Typiquement, si vous voulez suivre le tutoriel et que vous mettez le même layername, vous aurez un conflit avec la configuration que nous avons faite dans ce cadre. Vous ne la voyez pas car elle n'appartient pas à votre datastore, mais comme les serveurs de diffusion sont partagés, vous ne pouvez pas appeler votre couche comme nous. Vous devez mettre un layername propre à vous. Je pense que vous n'avez pas créé de configuration, d'où la liste vide.
Merci pour l'explication que j'ai mieux saisie lorsque j'ai vu la liste couches accessibles dans QGIS en WFS. Je n'avais pas compris que les flux étaient "mutualisés".
Entité(s) concernée(s)
configuration, offering
Route API concernée
/datastores/{datastore}/configurations
Méthode de la route API
GET
Description détaillée du bug
Bonjour,
Je suis le tutoriel d'utilisation de l'entrepôt de données avec le geopackage fourni. Au moment de la publication en WFS :
POST /data/stores/{datastore}/configurations
se déroule correctement. D'autant qu'une nouvelle exécution renvoie bien l'existence préalable de couches avec le même nom.GET /datastores/{datastore}
renvoie une réponse correcte.Lors de la publication
POST /datastores/{datastore}/configurations/{configuration wfs}/offerings
, je cherche à récupérer l'id de la config du WFS en utilisantGET /datastores/{datastore}/configurations
vu que , sauf erreur de ma part, je ne vois pas cette données dans la réponse de la première requêtePOST
en 1.La réponse à
GET /datastores/{datastore}/configurations
est un tableau vide 🤔.Donc il m'est impossible de remplir le champ {configuration WFS} dans
POST /datastores/{datastore}/configurations/{configuration}/offerings
Mauvais utilisation de ma part ou bug de l'API ?