Skip to content
jvelilla edited this page Jul 8, 2012 · 18 revisions

IN PROGRESS

Evaluate Media Types

  • start with Collection/JSON
  • See later if we want to use HAL in addition or replacement
  • note: both "standards" are evolving, so we are likely to update the lib for time to time.

Create/Choose Media Types

  • Collection/JSON

Graph Data Model

  • content: graphviz’s code
  • id: UUID, shortname, integer ..
  • title: user friendly title
  • description: description of the graph
  • (image: generated graph from the graphviz’s code)

Collection-JSON template

{
"collection" :
	{
	"version" : "1.0",
	"href" : URI,
	"links" : [ARRAY],
	"items : [ARRAY],
	"queries" : [ARRAY],
	"template" : {OBJECT},
	"error" : {OBJECT}
	}
}

Collection/JSON Hypermedia API

 { // based on Collection+JSON media type
// http://www.amundsen.com/media-types/collection/

"collection" : { "href" : "...", "version" : "1.0", "links" : [ {"rel" : "author", "href" : "...", "prompt" : "Author"}, {"rel" : "profile", "href" : "...", "prompt" : "Profile"} ],

    //Queries
      "queries" : [
     {"rel" : "all", "href" : "...", "prompt" : "All Graphs"},
     {"rel" : "byName", "href" : "...", "prompt" : "byName",
     "data" : [
	 {"name" : "name", "value" : "", "prompt" : "Graph Name"},
	 ]
     }
    ],

    //Graph Collections
      "items" : [
	{"href" : "...",
	 "data" :[
		{"name" : "title", "value" : "...", "prompt" :"Title"},
		{"name" : "content", "value" : "...", "prompt" : "Graphviz Code"},
		{"name" : "id", "value" : "...", "prompt" : "Id"},
		{"name" : "description", "value" : "...", "prompt" : "Description"},
		{"name" : "representation", "value" : "...", "prompt" : "Binary Representation"}
		]
	}
     ],

    //Graph template
    // Use this date to create a new Graph 
  "template" :
	   {"data" :[
	       {"name" : "title", "value" : "...",prompt:"Title"},
	       {"name" : "content", "value" : "...", "prompt" : "Graphviz Code"},
	       {"name" : "description", "value" : "...", "prompt" : "Description"}
	]
    }   
}

}

Clone this wiki locally