天天看点

淘宝风格的API设计 (命名风格)

淘宝风格的API设计 (命名风格):
 
命令风格:
 1、对象=>方法 
2、对象=>属性=>方法
 
3、对象=>子对象=>方法
 
4、对象=>子对象=>子对象属性=>方法
 
 
 
方法 = CURD:add,  get,  update,  delete  [ list, list.get ] 
 
 
对象风格:
 
对象、属性、方法一般都是单个英文单词
 
严格区分单数复数形式,单数表示对象,复数表示对象集合
 
 
 
下面为淘宝部分API命名(括号内名称是本人感觉更好的命名):
 

/*
 一个想法:
 如果每个API,能够反转对象和方法,该多美妙?比如:
 */taobao.user.get                       => user::get();
 taobao.users.list.get             => user::getList();taobao.item.add                      => item::add();
 taobao.item.delete                   => item::delete();
 taobao.item.get                       => item::get();
 taobao.item.img.delete             => item::deleteImg();
 taobao.item.img.upload            => item::uploadImg();
 taobao.item.sku.delete             => item::deleteSku();
 taobao.item.sku.get                 => item::getSku();
 taobao.item.sku.price.update    => item::updateSkuPrice();
 taobao.item.sku.update            => item::updateSku();
  
 alipay.user.account.freeze.get   => user::getAccountFreeze();
 alipay.user.trade.search            => user::searchTrade(); // 更优的是: user::getTrade(); 
 //用户
 taobao.user.get 获取单个用户信息
  
 taobao.users.get 获取多个用户信息
 (taobao.users.list.get)
  
 //类目
 taobao.itemcats.authorize.get 查询商家被授权品牌列表和类目列表
  
 taobao.itemcats.get 获取后台供卖家发布商品的标准商品类目
  
 taobao.itemcats.increment.get 增量获取后台类目数据
  
 taobao.itemprops.get 获取标准商品类目属性
 (taobao.itemcats.props.get)
  
 taobao.itempropvalues.get 获取标准类目属性值
 (taobao.itemcats.propvalues.get)
  
 taobao.shopcats.list.get 获取前台展示的店铺类目
  
 taobao.topats.itemcats.get 全量获取后台类目数据
 (taobao.itemcats.topats.get)
  
 //商品
 taobao.aftersale.get 查询用户售后服务模板
  
 taobao.item.add 添加一个商品
  
 taobao.item.delete 删除单条商品
  
 taobao.item.get 得到单个商品信息
  
 taobao.item.img.delete 删除商品图片
  
 taobao.item.img.upload 添加商品图片
  
 taobao.item.joint.img 商品关联子图
 (taobao.item.img.joint)
  
 taobao.item.joint.propimg 商品关联属性图
 (taobao.item.propimg.joint)
  
 taobao.item.price.update   更新商品价格
  
 taobao.item.propimg.delete 删除属性图片
  
 taobao.item.propimg.upload 添加或修改属性图片
  
 taobao.item.quantity.update 宝贝/SKU库存修改
  
 taobao.item.recommend.add 橱窗推荐一个商品
  
 taobao.item.recommend.delete 取消橱窗推荐一个商品
  
 taobao.item.sku.add 添加SKU
  
 taobao.item.sku.delete 删除SKU
  
 taobao.item.sku.get 获取SKU
  
 taobao.item.sku.price.update   更新商品SKU的价格
  
 taobao.item.sku.update 更新SKU信息
  
 taobao.item.skus.get 根据商品ID列表获取SKU信息
  
 taobao.item.templates.get 获取用户宝贝详情页模板名称
  
 taobao.item.update 更新商品信息
  
 taobao.item.update.delisting 商品下架
 (taobao.item.delisting) //selected
  
 taobao.item.update.listing 一口价商品上架
 (taobao.item.listing) //selected
  
 taobao.items.custom.get 根据外部ID取商品
  
 taobao.items.inventory.get 得到当前会话用户库存中的商品列表
  
 taobao.items.list.get 批量获取商品信息
  
 taobao.items.onsale.get 获取当前会话用户出售中的商品列表
  
 taobao.product.add 上传一个产品,不包括产品非主图和属性图片
  
 taobao.product.get 获取一个产品的信息
  
 taobao.product.img.delete 删除产品非主图
  
 taobao.product.img.upload 上传单张产品非主图,如果需要传多张,可调多次
  
 taobao.product.propimg.delete 删除产品属性图
  
 taobao.product.propimg.upload 上传单张产品属性图片,如果需要传多张,可调多次
  
 taobao.product.update 修改一个产品,可以修改主图,不能修改子图片
  
 taobao.products.get 获取产品列表
  
 taobao.products.search 搜索产品信息
  
 taobao.skus.custom.get 根据外部ID取商品SKU
  
 taobao.skus.quantity.update SKU库存修改
  
 taobao.ump.promotion.get 商品优惠详情查询
  
 //交易
 taobao.topats.trades.fullinfo.get 异步批量获取交易订单详情
  
 taobao.topats.trades.sold.get 异步获取三个月内已卖出的交易详情(支持超大卖家)
  
 taobao.trade.amount.get 交易订单帐务查询
  
 taobao.trade.close 卖家关闭一笔交易
  
 taobao.trade.confirmfee.get 获取交易确认收货费用
  
 taobao.trade.fullinfo.get 获取单笔交易的详细信息
  
 taobao.trade.get 获取单笔交易的部分信息(性能高)
  
 taobao.trade.memo.add 对一笔交易添加备注
  
 taobao.trade.memo.update 修改一笔交易备注
  
 taobao.trade.ordersku.update 更新交易订单的销售属性
  
 taobao.trade.postage.update 修改订单邮费价格
  
 taobao.trade.receivetime.delay 延长交易收货时间
  
 taobao.trade.shippingaddress.update 更改交易的收货地址
  
 taobao.trade.snapshot.get 交易快照查询
  
 taobao.trades.sold.get 搜索当前会话用户作为卖家已卖出的交易数据
  
 taobao.trades.sold.increment.get 搜索当前会话用户作为卖家已卖出的增量交易数据
  
 //评价
 taobao.traderate.add 新增单个评价
  
 taobao.traderate.explain.add 商城评价解释接口
  
 taobao.traderate.list.add 针对父子订单新增批量评价
  
 taobao.traderates.get 搜索评价信息
  
 //物流
 taobao.areas.get 查询地址区域
  
 taobao.delivery.template.add 新增运费模板
  
 taobao.delivery.template.delete 删除运费模板
  
 taobao.delivery.template.get 获取用户指定运费模板信息
  
 taobao.delivery.template.update 修改运费模板
  
 taobao.delivery.templates.get 获取用户下所有模板
  
 taobao.logistics.address.add 卖家地址库新增接口
  
 taobao.logistics.address.modify 卖家地址库修改
  
 taobao.logistics.address.remove 删除卖家地址库
  
 taobao.logistics.address.search 查询卖家地址库
  
 taobao.logistics.companies.get 查询物流公司信息
  
 taobao.logistics.dummy.send 无需物流(虚拟)发货处理
  
 taobao.logistics.offline.send 自己联系物流(线下物流)发货
  
 taobao.logistics.online.cancel 取消物流订单接口
  
 taobao.logistics.online.confirm 确认发货通知接口
  
 taobao.logistics.online.send 在线订单发货处理(支持货到付款)
  
 taobao.logistics.orders.detail.get 批量查询物流订单,返回详细信息
  
 taobao.logistics.orders.get 批量查询物流订单
  
 taobao.logistics.orderstore.push 物流订单仓内信息推送接口
  
 taobao.logistics.ordertrace.push 物流订单流转信息推送接口
  
 taobao.logistics.partners.get 查询支持起始地到目的地范围的物流公司
  
 taobao.logistics.trace.search 物流流转信息查询
  
 taobao.topats.delivery.send 异步批量物流发货
  
 //店铺API
 taobao.sellercats.list.add 添加卖家自定义类目
  
 taobao.sellercats.list.get 获取前台展示的店铺内卖家自定义商品类目
  
 taobao.sellercats.list.update 更新卖家自定义类目
  
 taobao.shop.get 获取卖家店铺的基本信息
  
 taobao.shop.remainshowcase.get 获取卖家店铺剩余橱窗数量
  
 taobao.shop.update 更新店铺基本信息
  
 //支付宝
 alipay.ebpp.bill.add  创建账单
  
 alipay.ebpp.bill.get  查询账单
  
 alipay.ebpp.bill.pay  支付账单
  
 alipay.topats.user.accountreport.get 查询用户支付宝账务明细
  
 alipay.user.account.freeze.get  查询支付宝账户冻结金额
  
 alipay.user.account.get  查询支付宝账户余额
  
 alipay.user.contract.get  查询支付宝用户订购信息
  
 alipay.user.trade.search  查询支付宝账户消费明细