Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,

 

as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.

 

As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!

 

Regards,

Smart Home Forum by FIBARO Team


  • 0

Why API REST and api.get() don't return the same info sometimes ?


Question

Posted

Hello

I'm working on a QA involving icons and I'm displaying some of them in the Webview.

As I was looking for a way to retrieve the path of native icons, I was surprised to notice that REST API for icons (BOX_IP/api/icons) returns the full ICONS.JSON (with ALL icons data, both native and custom), while api.get("/icons") only gave me a little info about 19 "special" icon sets (mainly FGKF, FGGC, FGPB, FGCD, usbPort).

 

I immediately compared REST API for devices (BOX_IP/api/devices) and api.get("/devices") : they both return the same info. I get all my devices and their info both ways.

Than I compared REST API for rooms (BOX_IP/api/rooms) and api.get("/rooms") : they both return the same info again. I got all my rooms and their info both ways again.

 

So I my quest for native icons info through api.get() I'm wondering whether I did something wrong or if this a voluntary restriction for icons ?

I can't find further information through the swagger.

 

thanks

3 answers to this question

Recommended Posts

  • 0
Posted (edited)
16 hours ago, fel-x said:

Hello

I'm working on a QA involving icons and I'm displaying some of them in the Webview.

As I was looking for a way to retrieve the path of native icons, I was surprised to notice that REST API for icons (BOX_IP/api/icons) returns the full ICONS.JSON (with ALL icons data, both native and custom), while api.get("/icons") only gave me a little info about 19 "special" icon sets (mainly FGKF, FGGC, FGPB, FGCD, usbPort).

 

I immediately compared REST API for devices (BOX_IP/api/devices) and api.get("/devices") : they both return the same info. I get all my devices and their info both ways.

Than I compared REST API for rooms (BOX_IP/api/rooms) and api.get("/rooms") : they both return the same info again. I got all my rooms and their info both ways again.

 

So I my quest for native icons info through api.get() I'm wondering whether I did something wrong or if this a voluntary restriction for icons ?

I can't find further information through the swagger.

 

thanks

 

If you set the header
["X-Fibaro-Version"] = "1"
you get the restricted return, plain list of icons. It seems like api.get sets that by default.
If you set it to 
["X-Fibaro-Version"] = "2"

you get the full list divided up on device/room/scene
It doesn't seem like the swagger api honors the x-fibaro-version but always calls with "2"...

But if you try
 

Please login or register to see this code.

 

Edited by jgab
  • Thanks 1
  • 0
  • Inquirer
  • Posted (edited)

    Thanks @jgab

    This works quite well. I was tricked by the swagger that never returned the full list.

    You maybe inverted ["X-Fibaro-Version"] = "1" and ["X-Fibaro-Version"] = "2" in your explanation I think, because my swagger sets 'X-Fibaro-Version: 2' whatever I try.

    Anyway, the net.HTTPClient() works well !! 👍

     

    And you should quickly erase your base64 encoded password from your reply here above 😵

    Edited by fel-x
    • 0
  • Inquirer
  • Posted (edited)

    Hello @jgab

     

    I successfully combined both methods thanks to your tips

    My Icon Customizer QA is now ready (after a lot of testing) and was approved on the marketplace.

    Please login or register to see this link.

     in case you're interested 

    comments are welcome 

     

    thanks for your help in various forums 

    Edited by fel-x
    • Thanks 1

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Answer this question...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

    ×
    ×
    • Create New...