读 RESTful Web Service 第三章

读 RESTful Web Service 第三章

Chapter3, What Makes RESTful Services Different?


Amazon的S3可以让我们以任何格式存储任何数据,并提供Ruby,Python,Java,C#,Perl等多种接口

S3基于两个概念:S3 “buckets”和S3“objects”。
object是命名的数据片段,bucket则是命名的object容器。

看看一个简单的S3 Client:
require 'S3lib'

bucket_name, object_name, object_value = ARGV
unless bucket_name
  puts "Usage: #{$0} [bucket name] [object name] [object value]"
  exit
end

buckets = S3::BucketList.new.get
bucket = buckets.detect { |b| b.name == bucket_name }
if bucket
  puts "Found bucket #{bucket_name}."
else
  puts "Could not find bucket #{bucket_name}, creating it."
  bucket = S3::Bucket.new(bucket_name)
  bucket.put
end

object = S3::Object.new(bucket, object_name)
object.metadata['content-type'] = 'text/plain'
object.value = object_value
object.put

bucket.get[0].each do |o|
  puts "Name: #{o.name}"
  puts "Value: #{o.value}"
  puts "Metadata hash: #{o.metadata.inspect}"
  puts
end


如果是基于Rails构建的RESTful Web Service,则使用ActiveResource是非常明智的选择
同时也可以看到Rails的REST实现的convention是多么简洁明了,只需将数据库通过RESTful接口暴露出去即可
虽然现在没有太多遵循Rails的REST convention的Web Service,但是希望大家看到它的简洁性,一起来使用和完善它,因为WADL没有它简洁

你可能感兴趣的:(Web,python,REST,Ruby,Rails)