Chain API

Spencer Russell

MIT Media Lab

2014-04-25

Sensor Architecture

Project Scope

Just JSON

{}
{
  "name": "MIT Media Lab"
}
{
  "name": "MIT Media Lab"
}
{
  "name": "MIT Media Lab"
  "_links": {
    "self": {
      "href": "http://chain-api.media.mit.edu/sites/5"
    },
    "siteSummary": {
      "href": "http://chain-api.media.mit.edu/sites/5/summary",
      "title": "Summary"
    },
    "devices": {
      "href": "http://chain-api.media.mit.edu/devices/?site_id=5",
      "title": "Devices"
    }
  }
}
{
  "name": "MIT Media Lab"
  "_links": {
    "self": {
      "href": "http://chain-api.media.mit.edu/sites/5"
    },
    "siteSummary": {
      "href": "http://chain-api.media.mit.edu/sites/5/summary",
      "title": "Summary"
    },
    "devices": {
      "href": "http://chain-api.media.mit.edu/devices/?site_id=5",
      "title": "Devices"
    }
  }
}
{
  "name": "MIT Media Lab"
  "_links": {
    "self": {
      "href": "http://chain-api.media.mit.edu/sites/5"
    },
    "siteSummary": {
      "href": "http://chain-api.media.mit.edu/sites/5/summary",
      "title": "Summary"
    },
    "devices": {
      "href": "http://chain-api.media.mit.edu/devices/?site_id=5",
      "title": "Devices"
    }
  }
}
{
  "name": "MIT Media Lab"
  "_links": {
    "self": {
      "href": "http://chain-api.media.mit.edu/sites/5"
    },
    "siteSummary": {
      "href": "http://chain-api.media.mit.edu/sites/5/summary",
      "title": "Summary"
    },
    "devices": {
      "href": "http://chain-api.media.mit.edu/devices/?site_id=5",
      "title": "Devices"
    }
  }
}
{
  "name": "MIT Media Lab"
  "_links": {
    "self": {
      "href": "http://chain-api.media.mit.edu/sites/5"
    },
    "siteSummary": {
      "href": "http://chain-api.media.mit.edu/sites/5/summary",
      "title": "Summary"
    },
    "devices": {
      "href": "http://chain-api.media.mit.edu/devices/?site_id=5",
      "title": "Devices"
    }
  }
}
{
  "name": "MIT Media Lab"
  "_links": {
    "self": {
      "href": "http://chain-api.media.mit.edu/sites/5"
    },
    "curies": [
      {
        "href": "http://chain-api.media.mit.edu/rels/{rel}",
        "name": "ch",
        "templated": true
      }
    ],
    "ch:siteSummary": {
      "href": "http://chain-api.media.mit.edu/sites/5/summary",
      "title": "Summary"
    },
    "ch:devices": {
      "href": "http://chain-api.media.mit.edu/devices/?site_id=5",
      "title": "Devices"
    }
  }
}

Streaming

{
  "name": "MIT Media Lab"
  "_links": {
    "self": {
      "href": "http://chain-api.media.mit.edu/sites/5"
    },
    "ch:siteSummary": {
      "href": "http://chain-api.media.mit.edu/sites/5/summary",
      "title": "Summary"
    },
    "ch:devices": {
      "href": "http://chain-api.media.mit.edu/devices/?site_id=5",
      "title": "Devices"
    },
    "ch:websocketStream": {
      "href": "ws://chain-api.media.mit.edu/ws/site-5",
      "title": "Websocket Stream"
    }
  }
}

Discoverable

{
  "name": "MIT Media Lab"
  "_links": {
    "self": {
      "href": "http://chain-api.media.mit.edu/sites/5"
    },
    "ch:devices": {
      "href": "http://chain-api.media.mit.edu/devices/?site_id=5",
      "title": "Devices"
    }
    "editForm": {
      "href": "http://chain-api.media.mit.edu/sites/5/edit",
      "title": "Edit Site"
    }
  }
}

Decentralized

Crawlable

Open Source

https://github.com/ssfrr/chain-api

Live

http://chain-api.media.mit.edu

Getting Started

{
  "_links": {
    "curies": [
      {
        "href": "http://chain-api.media.mit.edu/rels/{rel}",
        "name": "ch",
        "templated": true
      }
    ],
    "self": {
      "href": "http://chain-api.media.mit.edu/"
    },
    "ch:sites": {
      "href": "http://chain-api.media.mit.edu/sites/",
      "title": "Sites"
    }
  }
}

Live Site

http://chain-api.media.mit.edu

Main Github

https://github.com/ssfrr/chain-api

Python Client Library

https://github.com/ssfrr/chainclient.py

ChainAPI - OSC Bridge

https://github.com/ssfrr/chainosc.py