天天看點

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