Version 2 of CANTCL URL interface

Updated 2003-01-31 12:25:16

Provide a URI based interface where each resource (package) has a unique URI and various kinds of package searches and browsing are available via URIs as well. Here's an evolving list, comments are welcome.

 cantcl/ -- front page 

The front page lists the various starting URIs below, it's HTML

 cantcl/<pkgname>  -- get a package

 cantcl/packages/anagif.zip     -- get latest version of anagif
 cantcl/packages/anagif.kit     -- get latest version of anagif as a starkit
 cantcl/packages/anagif1.0.zip -- get version 1.0 

 cantcl/packages/anagif/
  • returns a page of links to package contents which can then be browsed or traversed by a client, including at some point URIs of individual files inside the package, eg:
 cantcl/packages/anagif/tcl/anagif.tcl  

With the purl is activated, this will give us a way of referencing the latest version of any package as

 http://purl.org/tcl/cantcl/packages/anagif.zip

Browse Interface

 cantcl/browse/ 

This page might eventually list the top level of some set of package categories (eg. Trove) from which a web user might browse.

 cantcl/browse/platform=Linux
 cantcl/browse/subject=CGI
 cantcl/browse/name=*image*   -- glob style search
  • each of these returns a package list with links into the /packages/ hierarchy, eg:
  <cantcl>
   <description>Results of query /browse/platform=Linux</description>
   <ul>
     <li><a href="/packages/anagif/">Anagif</a> - ...description...</li>
     <li><a href="/packages/bwidget/">BWidget</a> - ...description...</li>
   </ul>
  </cantcl>

perhaps with an appropriate stylesheet to allow it to render nicely in a web browser.

Upload

According to REST, creation of new web resources should be done via POST or PUT. POST is for creating new sub-objects, PUT for completely new resources. PUT seems appropriate here, although supporting POST would allow for browser forms based upload as in the initial implementation.