jjacques68 Posté(e) le 27 mars 2020 Signaler Posté(e) le 27 mars 2020 (modifié) Bonsoir à tous, J'avais déjà posté une question sur le PUT dans l'API... (avec le panneau de chauffage) Et je rencontre la même chose avec le panneau GARDEN... Et j'obtiens le même résultat si je passe par le SWAGGER ! Soit je fais mal quelque chose (ce qui est certainement le cas) soit la HC3 bloque les PUT (j'en doute)... Voici un exemple : je veux modifier la liste des jours du panneau GARDEN. local Liste = api.get("/panels/sprinklers/3") print("Liste des jours initiale = "..json.encode(Liste.days)) table.remove(Liste.days, 1) print("Liste des jours modifiée = "..json.encode(Liste.days)) print("Résutat du PUT = "..api.put("/panels/sprinklers/3", Liste).reason) voici le debug : [DEBUG] 27.03.2020 23:08:57: Liste des jours initiale = ["monday","wednesday","friday","sunday"] [DEBUG] 27.03.2020 23:08:57: Liste des jours modifiée = ["wednesday","friday","sunday"] [DEBUG] 27.03.2020 23:08:57: Résutat du PUT = http://{$gateway-ip}/json-schema/panels/sprinklers/PUT_sprinklers.json. Invalid schema: #. Invalid keyword: additionalProperties. Invalid document: #/id Il me répond donc qu'il y a un soucis avec le schémas, donc le JSON que je lui transmet... Mais je comprends pas, je ne touche pas au JSON, puisque je travail directement avec la table ?? vous avez une idée ? Modifié le 27 mars 2020 par jjacques68
jjacques68 Posté(e) le 27 mars 2020 Auteur Signaler Posté(e) le 27 mars 2020 Alors je me rends compte que le api.get ne mets pas tous les éléments tu tableaux dans le même ordre que l'on peut voir dans le Swagger. Mais le contenu est juste !! Alors je sais pas si ça a de l'importance !?
jjacques68 Posté(e) le 28 mars 2020 Auteur Signaler Posté(e) le 28 mars 2020 alors je me réponds tout seul, mais c'est étrange... voilà ce qui marche : local Liste = api.get("/panels/sprinklers/3").days table.remove(Liste.days, 1) local temp = json.encode(Liste) api.put("/panels/sprinklers/3", {days=json.decode(temp)}) faut passer par une variable intermédiaire !!?? !!??
jjacques68 Posté(e) le 28 mars 2020 Auteur Signaler Posté(e) le 28 mars 2020 du coup j'ai l'impression que l'on ne pas écrire avec le PUT,un panel complet, du genre : ça ça marche pas : local Panel = api.get("/panels/sprinklers/3") Panel.name = 'toto' api.put("/panels/sprinklers/3", Panel) mais ça oui : api.put("/panels/sprinklers/3", {name='toto'})
Krikroff Posté(e) le 28 mars 2020 Signaler Posté(e) le 28 mars 2020 Logiquement un PUT devrait permettre la mise à jour complète, partielle et également la création. Je suppose que l'intégration par Fibaro repose sur du POST uniquement pour la création mais cela ne devrait pas empêcher la modification complète via un PUT ... Sauf évidement si des données ne peuvent être modifiées, cela arrivent il faudrait connaitre précisément les règles de gestion pour cela ou accès au code source Après dans ton exemple, passer un panel complet pour modifier juste le name ce n'est pas logique, PUT ne doit pas être utilisé comme cela (J'ai bien compris qu'il s'agit d'un exemple ) 1
jjacques68 Posté(e) le 28 mars 2020 Auteur Signaler Posté(e) le 28 mars 2020 Il y a 3 heures, Krikroff a dit : Sauf évidement si des données ne peuvent être modifiées, cela arrivent il faudrait connaitre précisément les règles de gestion pour cela ou accès au code source comment on peut le savoir ça ?
Krikroff Posté(e) le 28 mars 2020 Signaler Posté(e) le 28 mars 2020 Ce ne sont pas des informations accessibles ni partagées par Fibaro. Il faudra procéder par élimination suivant nos retours d’expérience pour en déduire le fonctionnement exact j'en ai peur...
jjacques68 Posté(e) le 28 mars 2020 Auteur Signaler Posté(e) le 28 mars 2020 parce que je galère grave avec le panneau Climate...
jjacques68 Posté(e) le 28 mars 2020 Auteur Signaler Posté(e) le 28 mars 2020 Oui ben j'ai bien l'impression que certaine propriété ne peuvent pas être modifiée directement dans l'API. Je pense qu'elles sont modifiées par le process uniquement. Et ils ne veulent pas que l'on y touche par précaution j'imagine. bon j'ai trouvé une solution de contournement pour mon Panel Climate, mais pourri
Messages recommandés