rest: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
(→‎Topics: cgi, urls)
m (Reverted edits by RicacElvir (Talk) to last version by DrErnie)
 
(28 intermediate revisions by 8 users not shown)
Line 1: Line 1:
= Microformats in REST Web Services =
= Microformats in REST Web Services =
== Introduction ==
This the page for discussion, research, and standards regarding how to optimally use Microformats as the encoding for [http://en.wikipedia.org/wiki/Representational_State_Transfer Representational State Transfer (REST)] web services. REST is a software architectural style for distributed hypermedia systems like the world wide web. The goal is for all REST-related information in the microformats world to live under this URL.
This the home page for discussion, research, and standards regarding how to optimally use Microformats as the encoding for [http://en.wikipedia.org/wiki/Representational_State_Transfer REST] web services.


The goal is for all REST-related information in the microformats world to live under this URL.
== Resources ==
 
== Participants ==
* [http://www.opendarwin.org/~drernie/C395201355/index.html Dr. Ernie Prabhakar]
* [http://restylab.php5.cz/ toydi]
* [mailto:dimitri.glazkov@gmail.com Dimitri Glazkov]
* [http://www.xrest.org Max Voelkel (xamde)]
 
== Discussion Forums ==
* [http://microformats.org/discuss/mail/microformats-rest/ uf-rest] discussion list on microformats.org
* [http://microformats.org/discuss/mail/microformats-rest/ uf-rest] discussion list on microformats.org
* [http://groups.yahoo.com/group/rest-discuss/ rest-discuss] @ Yahoo Groups
* [http://groups.yahoo.com/group/rest-discuss/ rest-discuss] @ Yahoo Groups
* [http://rails.campfirenow.com/a6dc1 REST on Rails] @ Rails CampfireNow
* REST [http://search.restlet.org search engine]
* [http://akamai.infoworld.com/weblog/stratdev/archives/Patterns.pdf Patterns for a RESTful SOA] great overview of concepts and techniques


== Topics ==
== Topics ==
;[[rest/ahah]]
=== URLs ===
:Asychronous HTML vs. AJAX
;[[rest/cgi]]
:CGI is slow, and FastCGI is designed for C parsers.  Is there a third option?
;[[rest/description]]
:What, if anything, is the analogue of WSDL for REST services?
;[[rest/opacity]]
;[[rest/opacity]]
:Properly Interpreting the "Axiom of URI Opacity"
:Properly Interpreting the "Axiom of URI Opacity"
;[[rest/rails]]
:Ways to make Ruby on Rails more REST-friendly out of the box.
;[[rest/urls]]
;[[rest/urls]]
:How should URLs be structured for maximum clarity & discoverability?
:How should URLs be structured for maximum clarity & discoverability?
;[[rest/property]]
:How to emulate WebDAV-style properties (metadata) over standard HTTP
=== HTML ===
;[[rest/ahah]]
:Asynchronous HTML vs. AJAX
;[[rest/datatypes]]
:How to encode type information in HTML
;[[rest/description]]
:What, if anything, is the analogue of WSDL for REST services?
;[[rest/webforms]]
;[[rest/webforms]]
:Upgrading browsers to support PUT and DELETE properly
:Upgrading browsers to support PUT and DELETE properly


== Examples ==
=== Implementations ===
;[[rest/rails]]
:Ways to make Ruby on Rails more REST-friendly out of the box.
;[[rest/json]]
:[http://groups.google.com/group/restful-json RESTful-JSON], a generic data container [http://bitworking.org/news/restful_json alternative] to [http://tools.ietf.org/html/rfc5023 AtomPub].
 
 
=== Standards ===
* [http://www.ietf.org/rfc/rfc3205.txt HTTP as a Substrate] - Best Current Practice
* [http://www.faqs.org/rfcs/rfc2483.html text/uri-list] (Section 5, URI Resolution Services)
 
== Background Research ==
=== Examples ===
* [[rest/examples]]
* [[rest/examples]]
* [[rest/forms-examples]]
* [[rest/forms-examples]]


== Brainstorming ==
=== Brainstorming ===


* [[rest/brainstorming]]
* [[rest/brainstorming]]
Line 43: Line 52:
Note that these are all preliminary.
Note that these are all preliminary.


* [[http://www.opendarwin.org/~drernie/C395201355/rest-enabled-xhtml-20051019.html REST-Enabled XHTML]] by Dr. Ernie
* [http://www.opendarwin.org/~drernie/talk/rest-enabled-xhtml-20051019.html REST-Enabled XHTML]] by Dr. Ernie
** original at [[rest/rex-proposal]]
** original at [[rest/rex-proposal]]
* [http://restylab.php5.cz/dreams/webutopia.html WebUtopia] by Toydi
* [http://restylab.php5.cz/dreams/webutopia.html WebUtopia] by Toydi
Line 49: Line 58:


== Implementations ==
== Implementations ==
=== Atom-based alternatives ===
* [http://ietfreport.isoc.org/idref/draft-ietf-atompub-protocol/ Atom Publishing Protocol]
* Google's [http://code.google.com/apis/gdata/overview.html GData]


=== Tools ===  
=== Tools ===  
* [[xoxo-sample-code| XOXO parser (python)]]
* [[xoxo-sample-code| XOXO parser (python)]]
** also [http://www.opendarwin.org/~drernie/xoxo-plist.py xoxo-plist.py], a pyobjc variant support Mac OS X plists]
** also [http://www.opendarwin.org/~drernie/xoxo-plist.py xoxo-plist.py], a pyobjc variant support Mac OS X plists]
* [http://www.opendarwin.org/~drernie/ahah.js ahah.js] Asynchronous HTML over HTTP
* [http://www.opendarwin.org/~drernie/src/ahah.js ahah.js] Asynchronous HTML over HTTP
** was [http://epeus.blogspot.com/2005_05_01_epeus_archive.html#111588374981985824 JAH], an [http://technorati.com/tag/AJAX AJAX] alternative)
** was [http://epeus.blogspot.com/2005_05_01_epeus_archive.html#111588374981985824 JAH], an [http://technorati.com/tag/AJAX AJAX] alternative)
* Ruby RESTifarian plugin
  $ script/plugin install restifarian # need beta gems/edge rails for this to work
** See also prototype [http://www.onautopilot.com/oss/rails/rest_controller.rb controller]
* [http://wiki.jonnay.net/bunny/meditation/meditation Meditation] a PHP REST API Framework.


=== Examples ===
=== Examples ===
* [http://www.opendarwin.org/~drernie/C499496031/E20051019100520/index.html DARC]: Darwin-Apache-Rails-CoreData
* [http://www.opendarwin.org/~drernie/C499496031/E20051019100520/index.html DARC]: Darwin-Apache-Rails-CoreData
* [http://www.opendarwin.org/~drernie/C499496031/E20051026153908/index.html TurboGear] AddressBook (Mac OS X-only)
* [http://www.opendarwin.org/~drernie/C499496031/E20051026153908/index.html TurboGear] AddressBook (Mac OS X-only)
=== Sites ===
* [http://www.larrystaton.com Larry Staton Jr.] AHAH-enabled homepage (a first!)
== Participants ==
* [http://www.opendarwin.org/~drernie/C395201355/index.html Dr. Ernie Prabhakar]
* [http://restylab.php5.cz/ Teo HuiMing (toydi)]
* [mailto:dimitri.glazkov@gmail.com Dimitri Glazkov]
* [http://www.xrest.org Max Voelkel (xamde)]
* [http://www.loudthinking.com/ David Heinemeier Hansson]
== See also ==
*[[rest/cgi]]

Latest revision as of 19:00, 20 December 2008

Microformats in REST Web Services

This the page for discussion, research, and standards regarding how to optimally use Microformats as the encoding for Representational State Transfer (REST) web services. REST is a software architectural style for distributed hypermedia systems like the world wide web. The goal is for all REST-related information in the microformats world to live under this URL.

Resources

Topics

URLs

rest/opacity
Properly Interpreting the "Axiom of URI Opacity"
rest/urls
How should URLs be structured for maximum clarity & discoverability?
rest/property
How to emulate WebDAV-style properties (metadata) over standard HTTP

HTML

rest/ahah
Asynchronous HTML vs. AJAX
rest/datatypes
How to encode type information in HTML
rest/description
What, if anything, is the analogue of WSDL for REST services?
rest/webforms
Upgrading browsers to support PUT and DELETE properly

Implementations

rest/rails
Ways to make Ruby on Rails more REST-friendly out of the box.
rest/json
RESTful-JSON, a generic data container alternative to AtomPub.


Standards

Background Research

Examples

Brainstorming

Proposals

Note that these are all preliminary.

Implementations

Atom-based alternatives

Tools

 $ script/plugin install restifarian # need beta gems/edge rails for this to work

Examples

  • DARC: Darwin-Apache-Rails-CoreData
  • TurboGear AddressBook (Mac OS X-only)

Sites

Participants

See also