Posts Tagged ‘chrome’

Chrome Extension API; How we wish we have named parameters

April 8th, 2009 No comments




  1. chromium.tabs.createTab({

  2. "url": "",

  3. "selected": true,

  4. "tabIndex": 3

  5. });

    This is how you will probably create a new tab using the Chrome extensions API when it comes out.

    Aaron Boodman talked about the choice and how they are looking to make the APIs look more like this:

    I’m using the CRUD pattern as a starting point for all the major sub-systems’ APIs. My hope is that this will have a number of positive effects:

    • Minimize API design hand-wringing
    • Provide a large base of functionality quickly
    • Make it easy for Chromium developers to add new APIs
    • Make it easy for extension developers to learn new APIs

    I got this all working for a few methods, and then I got to writing the validation code. I could write the code by hand, but that’s so much work. And why bother when somebody has gone and invented JSON Schema.

    That’s right, it’s a schema language for JSON. And of course it has a schema, written in JSON schema. Whee!

    So we should be able to just declare the expected structure for our API parameters and push the validate() button. Probably there will have to be extra stuff around the edges, but this should get rid of a majority of the grunt work.

    I have found that I favor this approach a lot, and you see the same in libraries such as Prototype (Ruby does a lot of this hash munging too). I wish we could just get named parameters in the language so this all just integrated very nicely indeed. What do you think?

    Categories: Programming Tags: ,