Skip to content

Collection JSON Graphviz Hypermedia API

jvelilla edited this page Jan 5, 2013 · 11 revisions

Graphviz Hypermedia API, using Collection JSON media type [1]

The actual design allows users to:

  • Register a new user
  • Add, Update, Delete graph definitions (only for registered users)
  • Retrieve a fix set of representations, pdf, jpg, png, gif
  • Anonymous users can browse the API, and retrieve the graph representation, but they can't Create/Update/Delete them.

A simplified state machine is described here

We are using Basic Authentication, we plan to extend it with other options like OAuth, OpenId, etc.

State transitions

  • The home page
  • Template for register a new user
  • The list of graphs (pages)
  • The list of graph per user
  • Template for create a new graph
  • Template for updating an existing graph
  • Template for delte an existing graph

TODO

  • template for queries

Graphviz API

Home Page

GET / { "collection": { "version": "1.0", "href": "http://127.0.0.1:8190/", "links": [ {"href": "http://127.0.0.1:8190/", "rel": "home", "prompt": "Home API"}, {"href": "http://127.0.0.1:8190/graph", "rel": "graphs", "prompt": "Home Graph"}, {"href": "http://127.0.0.1:8190/register", "rel": "register", "prompt": "User Register"}, {"href": "http://127.0.0.1:8190/login", "rel": "login", "prompt": "User Login"} ] } } References [1] http://amundsen.com/media-types/collection/

Clone this wiki locally