Ad Widget

Collapse

Vote for Zabbix API

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Alexei
    Founder, CEO
    Zabbix Certified Trainer
    Zabbix Certified SpecialistZabbix Certified Professional
    • Sep 2004
    • 5654

    #1

    Vote for Zabbix API

    We would appreciate if everyone interested in Zabbix API would vote for his favorite implementation of the API very much.

    Please include brief arguments defending your choice.
    38
    JSON-RPC
    44.74%
    17
    REST
    21.05%
    8
    SOAP
    15.79%
    6
    XML-RPC
    18.42%
    7

    The poll is expired.

    Alexei Vladishev
    Creator of Zabbix, Product manager
    New York | Tokyo | Riga
    My Twitter
  • nelsonab
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Sep 2006
    • 1233

    #2
    I'm assuming you will follow the JSON-RPC standard?
    http://http://en.wikipedia.org/wiki/JSON-RPC


    Are you looking to do JSON-RPC over TCP or HTTP? Using HTTP as your transport protocol can make some things easier, over TCP things might be quicker and in some cases easier to work with given a good client library.

    I also wonder about the client libraries. I did a quick search for a Ruby JSON-RPC library and didn't come up with very many. I also wonder about the maturity of the code for some of these libraries, but this is just pure speculation at this point.

    I think REST would be a good interface to allow for "pulling" data from the Zabbix server. Perhaps someone could write a REST wrapper to JSON-RPC.

    SOAP is pretty cool, but setup and implementation can be a pain, but once that pain is done it's pretty cool.

    Straight XML-RPC, no thank you!
    RHCE, author of zbxapi
    Ansible, the missing piece (Zabconf 2017): https://www.youtube.com/watch?v=R5T9NidjjDE
    Zabbix and SNMP on Linux (Zabconf 2015): https://www.youtube.com/watch?v=98PEHpLFVHM

    Comment

    • Alexei
      Founder, CEO
      Zabbix Certified Trainer
      Zabbix Certified SpecialistZabbix Certified Professional
      • Sep 2004
      • 5654

      #3
      Yes, I mean standard JSON-RPC. We are thinking of JSON-RPC (or other protocols) over HTTP, so the code will be on the front-end side, i.e. implemented in PHP.
      Alexei Vladishev
      Creator of Zabbix, Product manager
      New York | Tokyo | Riga
      My Twitter

      Comment

      • nelsonab
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Sep 2006
        • 1233

        #4
        Ok, if I understand you right you're saying that you'll implement the API from within the Web Frontend. Makes sense, easier to impliment there.
        RHCE, author of zbxapi
        Ansible, the missing piece (Zabconf 2017): https://www.youtube.com/watch?v=R5T9NidjjDE
        Zabbix and SNMP on Linux (Zabconf 2015): https://www.youtube.com/watch?v=98PEHpLFVHM

        Comment

        • Tom
          Junior Member
          Zabbix Certified Specialist
          • Nov 2007
          • 13

          #5
          Hi all,
          Voted for JSON-RPC. Reasons?
          • Good Bi-directionality
          • Low overhead
          • Well supported by the major programming languages I work with


          Tom.

          Comment

          • Aly
            ZABBIX developer
            • May 2007
            • 1126

            #6
            Just my 0.02$ :

            I would pick up SOAPjr: http://soapjr.org/
            This is simplified SOAP protocol and realized through JSON.

            Why:
            1. JSON-rpc is too simplified, I would prefer more strict way doing things.
            2. XML - is too heavy and not so comfortable to work with.
            Zabbix | ex GUI developer

            Comment

            • nmail_uk
              Member
              • May 2009
              • 65

              #7
              I can see JSON has got the lead so far, however I've voted for XML-RPC. My reasons?

              Mainly because my desired use case will be using a C++ application to fetch details of client's system out of our existing management system and add them to ZABBIX to be monitored. All the interfaces our system currently supports (for billing and provisioning etc) are XML handled by a single server-side application, and I'd prefer not to have to code two different sets of interfaces.

              XML can be read pretty easily in PHP, and we've developed an in-house LINQ-style (.NET programmers will know what this is) handler in PHP for reading and writing XML.

              SOAP is, in my opinion, a bloated construct based on XML anyway.

              Comment

              • Farzad FARID
                Member
                • Apr 2007
                • 79

                #8
                I'd favour REST over SOAP (even simplified)

                Hi,

                Compared to REST, which is my favourite, I think "simplified SOAP" is too exotic. Besides, apparently no project uses it.

                Many open source or "agile" applications now use REST as their API. For me Zabbix falls into this category.

                Some examples of projets using REST:

                Regards.

                Originally posted by Aly
                Just my 0.02$ :

                I would pick up SOAPjr: http://soapjr.org/
                This is simplified SOAP protocol and realized through JSON.

                Why:
                1. JSON-rpc is too simplified, I would prefer more strict way doing things.
                2. XML - is too heavy and not so comfortable to work with.

                Comment

                • Aly
                  ZABBIX developer
                  • May 2007
                  • 1126

                  #9
                  It's just my opinion which won't be reflected on API selection:

                  While SOAPjr is not so famous like SOAP, it's lightweight and easy to use, doesn't need overhead processing, due to it's based on JSON, not XML.

                  With REST, there is no batch / multicalls, not specified standard issues like called invalid method, or wrong params are sent e.t.c. everything is specific to application. (that's why there are diggtoolkit, PEAR:flickr API and others)

                  I barely imagine how to use REST not over HTTP?! because nowadays pure REST mostly means POX over HTTP..


                  P.S. This vote doesn't mean that there won't be other RPC's. It's just which will be the first
                  Zabbix | ex GUI developer

                  Comment

                  • Wolfgang
                    Senior Member
                    Zabbix Certified Trainer
                    Zabbix Certified Specialist
                    • Apr 2005
                    • 116

                    #10
                    Was to late because Vote is closed.
                    Anyway my Vote for JSON-RPC. 2nd choice would have been REST.

                    Why:
                    - It is pretty simple to use
                    - JSON and JSON-RPC are more and more supported and used
                    - XML has a larger overhead
                    - Given, that the API is just about exchanging data without any presentation, JSON can be used easily by any client/frontend app
                    - Looking especially to WEB 2.0 application design, JSON seems to be the winner simply because of Javascript on the clientside
                    Last edited by Wolfgang; 15-06-2009, 12:29.
                    http://www.intellitrend.de
                    Specialised in monitoring large environments and Zabbix API programming.

                    Comment

                    • Alexei
                      Founder, CEO
                      Zabbix Certified Trainer
                      Zabbix Certified SpecialistZabbix Certified Professional
                      • Sep 2004
                      • 5654

                      #11
                      Thanks for participating in the voting! It was decided to implement JSON-RPC!

                      The work is already in progress.Stay tuned!
                      Alexei Vladishev
                      Creator of Zabbix, Product manager
                      New York | Tokyo | Riga
                      My Twitter

                      Comment

                      • nmail_uk
                        Member
                        • May 2009
                        • 65

                        #12
                        Good to hear this is progressing, however will XML be an option added at a later date?

                        Comment

                        • Alexei
                          Founder, CEO
                          Zabbix Certified Trainer
                          Zabbix Certified SpecialistZabbix Certified Professional
                          • Sep 2004
                          • 5654

                          #13
                          Originally posted by nmail_uk
                          Good to hear this is progressing, however will XML be an option added at a later date?
                          XML (or any other format) can be added easily in the future. We are trying to make the framework as flexible as possible.
                          Alexei Vladishev
                          Creator of Zabbix, Product manager
                          New York | Tokyo | Riga
                          My Twitter

                          Comment

                          • nelsonab
                            Senior Member
                            Zabbix Certified SpecialistZabbix Certified Professional
                            • Sep 2006
                            • 1233

                            #14
                            I think the more important question now is what will be exposed via the API and what will those interfaces look like? For instance if rev one allows to pull data, but does not allow me to pull a range of data or there was no review regarding what the API allowed I think it would be a missed opportunity.
                            RHCE, author of zbxapi
                            Ansible, the missing piece (Zabconf 2017): https://www.youtube.com/watch?v=R5T9NidjjDE
                            Zabbix and SNMP on Linux (Zabconf 2015): https://www.youtube.com/watch?v=98PEHpLFVHM

                            Comment

                            • Alexei
                              Founder, CEO
                              Zabbix Certified Trainer
                              Zabbix Certified SpecialistZabbix Certified Professional
                              • Sep 2004
                              • 5654

                              #15
                              Originally posted by nelsonab
                              I think the more important question now is what will be exposed via the API and what will those interfaces look like? For instance if rev one allows to pull data, but does not allow me to pull a range of data or there was no review regarding what the API allowed I think it would be a missed opportunity.
                              I absolutely agree. Actually we are doing some sort of code refactoring in order to make
                              the underlying API code work for both the API and the GUI itself. It will ensure that we have no code duplication and also guarantee much better (stable, fast) code at the end.
                              Alexei Vladishev
                              Creator of Zabbix, Product manager
                              New York | Tokyo | Riga
                              My Twitter

                              Comment

                              Working...