Restfulie -


Apache
跨平台
Ruby

软件简介

RESTfulie 是一个创建超媒体感知服务与客户端的Gem。在开发超媒体感知的服务和客户端的时候使用RESTfulie将非常容易。

下面描述了定义一个订单的例子,这一订单将经过一系列定义好的转变,比如从未结算到结算等等。它允许将各种各样的转变映射到对应的动作…

class Order < ActiveRecord::Base   
  state :unpaid, :allow => [:latest, :pay, :cancel]  
  state :cancelled, :allow => :latest

  transition :latest, {:action => :show}  
  transition :cancel, {:action => :destroy}, :cancelled  
  transition :pay, {}, :preparing   
end

它将会生成诸如这样的一个基于atom的嵌入超媒体的资源表示:

<order>   
   <product>basic rails course</product>   
   <product>RESTful training</product>   
   <atom:link xmlns:atom="http://www.w3.org/2005/Atom"   
          href="http://www.caelum.com.br/orders/1" rel="latest" />   
   <atom:link xmlns:atom="http://www.w3.org/2005/Atom"   
          href="http://www.caelum.com.br/orders/1/pay" rel="pay" />   
   <atom:link xmlns:atom="http://www.w3.org/2005/Atom"   
          href="http://www.caelum.com.br/orders/1" rel="cancel" />

</order>

并且支持客户端调用通过消费这一资源表示而动态创建的方法:

order = Order.from_web 'http://caelum.com.br/orders/1'   
order.pay(payment)