17 Jan
duccio

duccio il 17 January 2007 parla di Rails Snippet, Risorse

Rails 1.2. assaggia il REST

Grazie agli standard adottati dal Rails si potranno avere nuove routes tali da fornire Url RESTful (REST sta per Representational State Transfer) che automaticamente si mapperanno sui metodi che devono essere invocati; tutto questo grazie al protocollo HTTP di cui Roy Fielding è uno dei principali autori delle specifiche del protocollo.

Praticamente per usare questo sistema basta creare una route specificando solo il controllore cosi:

    1 map.resources :persone

e questo è il modo in cui vengono mappati automaticamente:

    1 POST: /users => [:action => 'create']
    2 PUT: /users/1 => [:action => 'update', :id => 1]
    3 DELETE: /users/1 => [:action => 'destroy', :id => 1]
    4 
    5 GET: /users => [:action => 'index']
    6 GET: /users.xml => [:action => 'index', :format => 'xml']
    7 GET: /users/1 => [:action => 'show', :id => 1]
    8 GET: /users/1;edit => [:action => 'edit', :id => 1]
    9 GET: /users/1.xml => [:action => 'show', :id => 1, :format => 'xml']

In questo modo un solo URL consente di eseguire azioni diverse a secondo del tipo di richiesta HTTP:

  • PUT => update -> l’url “/persone/1″
  • DELETE => destroy -> l’url “/persone/1″
  • GET => show -> l’url “/persone/1″
  • POST => create -> l’url “/persone”

In rails gli Helper che si usano continuamente come:

  • link_to
  • link_to_remote
  • form_tag
  • form_for
  • remote_form_tag
  • remote_form_for

supportano i verbs con i quali un controllore sa che tipo di richiesta si sta eseguendo tramite i metodi:

  • request.post?
  • request.get?
  • request.put?
  • request.delete?

Notizia di due mesi fa, che molti di voi sicuramente sanno è che ActiveResource non verrà incluso nella versione 1.2 di Rails ma gli helper e i metodi per cercare di fare URL REST Compliant quelli li ho provati e ci sono.

Scrivi un commento