淘寶風格的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 查詢支付寶賬戶消費明細