香菜芹菜辣青椒,茄子扁豆嫩蒜苗,好大的黄瓜你们谁要,一个铜子儿拿两条。

显示标签为“ECS”的博文。显示所有博文
显示标签为“ECS”的博文。显示所有博文

2007-03-14

Amazon E-Commerce Service笔记 Part III

当SearchIndex=VideoGames时,以下查询参数是有效的:
  • Brand:品牌;
  • BrowseNode:产品类别;
  • Condition:新旧状况;
  • DeliveryMethod
  • ISPUPostalCode
  • ItemPage:制定返回结果集的页数;
  • Keywords:关键词;
  • Manufactures:厂商;
  • MaximumPrice:最高价格;
  • MerchantId:店主id,不指定时即为Amazon;
  • MinimumPrice:最低价格;
  • Sort:排序;
  • State:所在州;
  • TextStream:文本;
  • Title:产品名称。

内容缓存:

为了保证系统性能能够满足所有人的需求,Amazon ECS服务限制了客户端发送请求的频度。每个ip地址最多每秒钟只能发送一个请求。如果你的应用在很短的时间内发送大量请求,则会导致整个的性能下降,特别是Amazon的服务器特别繁忙的时候。如此以来,缓存就成为AWS-based的应用非常重要的一部分。
例如我们做一个REST请求,可以用HashMap类来做一个简单的缓存,利用请求的URL地址做键。每一个成功的请求后,将返回的数据放入cache中。
要注意的是Amazon限制了数据缓存的时间。根据许可声明,多数数据都不允许缓存超过24小时,除了某些静态信息——例如作者姓名、产品名称、发售日期——是可以存储最多三个月的时间的。价格和供货信息能被缓存一周,但如果不是每小时刷新一次的话,则必须在显示的时候加上一个时间说明。

2007-03-07

Amazon E-Commerce Service笔记 Part II

利用ECS帮助信息,需要的参数有:
  • Operation:=Help
  • HelpType:=Operation 或者 =ResponseGroup
  • About:想要查询的Operation或者ResponseGroup的名字

利用批量查询和多操作查询可以将多个操作融入单一查询中。(*目前批量查询和多操作查询的数量限制是2)

REST Batch Requests查询的特殊参数:

  • Operation.1.Parameter:为第一个查询设定参数,如ItemSearch.1.Keywords;
  • Operation.2.Parameter:为第二个查询设定参数,如SellerLookup.2.SellerId;
  • Operation.Shared.Parameter:设定两个查询的共用参数,如SellerLookup.Shared.ResponseGroup。

2007-03-06

Amazon E-Commerce Service笔记 Part I

基本所有信息都来自于Amazon官方的Developer Guide。

完成REST request的Base Url: http://ecs.amazonaws.com/onca/xml?Service=AWSEcommerceService

对我的SnapAmazon应用来说,构建REST Request的必须参数有:
  • Service: 指定ECS服务名称;
  • AWSAccessKeyId: 必须获取一个id来作为获取信息的资质;
  • Operation: 指定操作方式;
  • AssociateTag: 可向Amazon申请一个Associate ID,以通过链接达成的交易来从亚马逊获取奖励分成;
  • ResponseGroup: 指定获取数据的内容和详尽程度(包含Request组可以在返回的文件中包含request参数)。
*调试时可用Validate=True来验证参数,如果发送的url参数有问题,返回一个值为False的IsValid参数,以及正常执行情况下会返回的错误信息。如果url参数正确,则会返回值为True的IsValid参数。

从Amazon获取产品信息的主要操作有两种,ItemSearchItemLookup。前者利用关键字进行相关性产品搜索,后者用来查找某确知物品的信息。

我的应用进行ItemSearch的主要参数包括:
  • Operation: =ItemSearch;
  • Keywords: 关键词。ECS会从产品名称、作者、演员、描述等信息中进行匹配;
  • Title: 按标题的部分或者全部内容进行匹配;
  • BrowseNodes: 产品种类;
  • Manufacturer: 按厂商的部分或者全部名称进行匹配;
  • Brand: 按品牌的全部或者部分名称进行匹配;
  • ItemPage: 对返回结果进行分页。每页10件,每次查询返回最多400页数据。
我的应用进行ItemLookup的主要参数包括:
  • Operation: =ItemLookup
  • ItemId:产品的ASIN、SKU、UPC、ISBN、EAN编码。一次只能用一种编码,多个编码之间用逗号隔开;
  • IdType:如果是SKU、UPC、EAN编码则必须制定此项;
  • SearchIndex:如果制定了UPC编码或者EAN,则需此项制定产品所属类别;
*关于各种编码,可参考http://zmaze.org/?p=192

作为通用参数之一,ResponseGroup限定了ItemSearch操作所返回数据的内容构成。默认的ResponseGroup包括了Request和Small两个数据组。部分重要的数据组分析如下:
  • Request:回显发送Request的参数;
  • ItemIds:仅仅返回产品的ASIN编码;
  • Small:总阔性的内容,包括ASIN编码、产品名称、作者(作者、演员、作曲家、导演等)、产品组别、Url地址、厂商。
  • Medium:包括了Smaill、Request、ItemAttributes、OfferSummary、SalesRank、EditorialReview、Images等子数据组;
  • Large:包括了Medium、Tracks、BrowseNodes、Reviews、ListmaniaLists、Similarities、Offers、Accessories等字数据组;
  • OfferSummary:价格汇总;
  • ItemAttributes:产品属性;
  • Tracks:曲目;
  • Accessories:附件;
  • BrowseNodes:类别;
  • Images:图片;
  • Reviews:评论。
对于得到数据的处理,留待Part II。