淘宝风格的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 查询支付宝账户消费明细