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 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/
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/ -- browse interface, browse via different criteria, eg: cantcl/browse/platform=Linux cantcl/browse/subject=CGI cantcl/browse/name=*image* -- glob style search?
<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.