REST式服务有什么特别不同
1. s3 simple storage service
一个独立的面向对象库
s3Bucket, s3Object
Ruby的实现
class S3Bucket
#这个类方法用于获取所有桶
def self.getBuckets
end
#这个实例方法用于获得桶里的对象
def getObjects
end
end
class S3Object
#获取与对象关联的数据
def data
end
#设置与对象关联的数据
def data=(new_value)
end
end
资源
两种Web服务:
基于普通HTTP信封的REST式服务(RESTful service) 和 基于SOAP信封的RPC式服务(RPC-style service)
REST式S3服务跟PRC式S3服务的功能一样, 只不过它暴露的不是自己命名的函数,而是暴露标准的Http对象(称为资源)。
资源响应GET, HEAD, POST, PUT, DELETE和OPTIONS这些标准的http方法
. 桶列表(http://s3.com/), 这种类型的资源只有一个;
. 一个特定的桶(http://s3.com/{name-of-bucket}/), 这种类型的资源最多可以有100个;
. 某个桶里的一个特定的s3对象(http://s3.com/{name-of-bucket}/{name-of-object}/),这种类型的资源数量不限;
要把程序作为Web服务发布的话,不需要发明新的词汇,或者在URI里给出自己的方法名称,你唯一须要做的就是仔细考虑资源的设计。
所有REST式Web服务都支持同样一组基本操作,它们的复杂性都在资源上。
GET HEAD PUT DELETE
桶列表(/) 列出所有桶 - - -
一个桶(/{bucket}) 列出桶里的对象 - 创建桶 删除桶
一个对象
(/{bucket}/{object})获取对象的值及元数据 获取对象的元数据 设置对象的值及元数据 删除对象
Http响应代码
官方和Http响应代码有41个,不过在日常使用中最重要的只有10个左右。