Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Scroll Ignore
scroll-viewporttrue
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmlfalse
Panel
titleSommaire

Table of Contents
stylenone

Concept

  • Renvoi du JSON complet
  • Explication sur la mise à jour d'un élément dans un Widget Météo
    • Renseigner UUID et/ou nom.

Les paramètres

Méthode PUT permettant d'éditer une vue météo, à l'instar du mode édition JSON de l'Interface de Visualisation ( voir la page Édition JSON - Météo ).

Les paramètres

Le paramètre ID reçu dans l'URL identifie la vue météo à modifier.

Le corps de la requête

Le corps de la requête doit contenir le nouveau contenu de la vue météo ( voir la page JSON d'exemple pour commencer - Édition JSON - Météo ).

Info

La requête réécrit toute la vue. Il faut envoyer le JSON avec tous les widgets voulus.

Réponse

Codes de retour

Paramètre invalide
Codes de retourExplications
200

OK

400

Le JSON est invalide ou contient des erreurs. 

401

L'accès nécessite une authentification ou un Token valide.

403

Authentification de l'utilisateur OK, mais droits non suffisants.

404

La vue météo n'existe pas.

500

L'appel est valide, mais un problème d'exécution est rencontré.

Retour du code 200

Retour du code 400

  • Mêmes erreurs que dans l'interface ( dans la langue de l'interface )
  • Même comportement que l'interface : On peut sauvegarder la vue si l'interface l'aurait autorisé.
  • Code d'erreur HTTP cohérent

Paramètres POST incorrects

Paramètre inconnu

Exemple de commande curl avec le contenu du JSON de la vue dans un fichier "weather_view.json"

Code Block
languagetext
themeEmacs
curl -s -S -U 'username:password' -X PUT \
-H 'Content-Type: application/json' -d '@-' \
"http://webui:7767/external-api/service-weather/v1/update/WEATHER_UUID" < ./weather_view.json 
Tip

L'option -d '@-' demande à curl de lire le corps de la requête dans l'entrée standard, permettant d'y injecter le contenu du fichier "weather_view.json". 


Exemple de sortie attendue :

Code Block
languagebash
themeRDark
{
  "critical": [],
  "errors": [],
  "warnings": [],
  "output": {
    "view_info": {
      "name": "Bordeaux",
      "state": "draft",
      "type": "service_weather",
      "weather_uuid": "ab512c70e84a4c7a9b0e23b46eec5355",
      "weather_version": 2,
      "weather_format_version": 5,
      "weather_shared_group": "service_weather",
      "weather_creation_time": 1787666586.1508853
    },
    "view_json": {
       ...
    }
  }
}
Info

Dans view_json se trouve le contenu de la vue météo sauvegardée. 

Messages de validation

Excerpt

Les messages d'erreurs et d'attention liées à la vue seront dans les champs criticalerrors et warnings respectivement ( voir la page Gestion des problèmes de configuration - Édition - Météo ).

Exemple avec un widget météo non configuré :

Code Block
languagebash
themeRDark
{
  "critical": [],
  "errors": [],
  "warnings": [
    {
      "text": "La valeur pour la clé [ item_type ] est obligatoire. Les valeurs possibles sont [ host, cluster ]",
      "property": "grids.0.grid_elements.2.content.item",
      "fields_with_errors": [
        "item_type"
      ]
    },
    {
      "text": "Au moins une des deux clés suivantes doit être renseignée : [ item_uuid ] ou [ item_name ]",
      "property": "grids.0.grid_elements.2.content.item",
      "fields_with_errors": [
        "item_uuid",
        "item_name"
      ]
    }
  ],
  "output": {
    "view_info": {
      "name": "Bordeaux",
      "state": "draft",
      "type": "service_weather",
      "weather_uuid": "ab512c70e84a4c7a9b0e23b46eec5355",
      "weather_version": 2,
      "weather_format_version": 5,
      "weather_shared_group": "service_weather",
      "weather_creation_time": 1787666586.1508853
    },
    "view_json": {
       ...
    }
  }
}
Tip

Le champ property permet de savoir à quel endroit dans le JSON se trouve l'erreur afin de la corriger. 

Retour du code 400

JSON invalide

Code Block
languagetext
themeEmacs
curl -s -S -U 'username:password' -X PUT \
-H 'Content-Type: application/json' -d '[]' \
 "http://webui:7767/external-api/service-weather/v1/update/WEATHER_UUID"
Code Block
languagebash
themeRDark
{
  "output": "Invalid JSON"
}

Messages d'erreurs de validation

S'il y a eu une erreur de validation ( les champs errors et critical contiennent des messages ), le JSON fournit sera retournée mais n'aura pas été sauvegardé.

Les messages d'attention n'empêchent pas la sauvegarde de la vue.

Voir les pages Gestion des problèmes de configuration - Édition - Météo et Liste des problèmes de configuration - Édition - Météo ).

Retour du code 404

Code Block
languagetext
themeEmacs
curl -s -S -U 'username:password' -X PUT \
-H 'Content-Type: application/json' -d '@-' \
"http://webui:7767/external-api/service-weather/v1/update/unknown_uuid" < ./weather_view.json 
Code Block
languagebash
themeRDark
{
  "output": "Weather with uuid [ unknown_uuid ] was not found"
}
Messages d'erreurs des filtres 

Excerpt Include
V1 - Les erreurs communes lors de l'envoi de la requête à /external-api/service-weather/v1
V1 - Les erreurs communes lors de l'envoi de la requête à /external-api/service-weather/v1
nopaneltrue