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