




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、淘寶網(wǎng)開放平臺錯(cuò)誤自查手冊本文檔針對2.0服務(wù),文檔中的2.0的說法是相對已下線的1.0而言的墨靈2010-10-15目錄一、錯(cuò)誤處理流程概覽3二、服務(wù)器響應(yīng)內(nèi)容透析41.調(diào)用成功返回格式42.調(diào)用錯(cuò)誤返回41)http連接錯(cuò)誤42)服務(wù)端錯(cuò)誤總述43)平臺解析錯(cuò)誤54)業(yè)務(wù)處理錯(cuò)誤6三、響應(yīng)格式錯(cuò)誤處理91.響應(yīng)格式格式錯(cuò)誤,但數(shù)據(jù)正確92.響應(yīng)格式錯(cuò)誤,數(shù)據(jù)也錯(cuò)誤10四、平臺級錯(cuò)誤處理11五、業(yè)務(wù)級錯(cuò)誤處理131.參數(shù)錯(cuò)誤132.權(quán)限控制133.用戶不存在134.服務(wù)錯(cuò)誤15a)服務(wù)調(diào)用錯(cuò)誤15b)服務(wù)調(diào)用異常15c)遠(yuǎn)程調(diào)用錯(cuò)誤15d)Top解析錯(cuò)誤15六、返回參數(shù)缺失處理161.整個(gè)消
2、息體為空或缺少文檔中說明的結(jié)構(gòu)體返回。162.缺少fields指定字段返回16七、總結(jié)17一、 錯(cuò)誤處理流程概覽圖表 1 錯(cuò)誤處理流程從這個(gè)錯(cuò)誤處理流程可知,在整個(gè)錯(cuò)誤處理的過程中,一共可以分為3條主要的流程:請求解析異常流程處理,平臺級錯(cuò)誤處理和業(yè)務(wù)調(diào)用錯(cuò)誤處理。當(dāng)然,這一切處理的最初也是最重要的一步就是:將服務(wù)器響應(yīng)內(nèi)容保留下來。二、 服務(wù)器響應(yīng)內(nèi)容透析服務(wù)器響應(yīng)內(nèi)容,顧名思義就是isv調(diào)用top服務(wù)得到的響應(yīng)的內(nèi)容。這些內(nèi)容能夠最真實(shí)的反應(yīng)出isv請求的問題和服務(wù)器當(dāng)前的情況,也最能夠幫助isv找到問題的所在。服務(wù)器響應(yīng)內(nèi)容一般分為兩種:一種是wiki文檔中所編寫的成功調(diào)用所返回的字段,
3、另一種是調(diào)用失敗的返回的錯(cuò)誤相關(guān)信息。1. 調(diào)用成功返回格式2.0的服務(wù)調(diào)用成功的響應(yīng)返回信息相對的規(guī)范化了。2.0的響應(yīng)內(nèi)容主要也可以分為3層:最外一層是你調(diào)用服務(wù)的名稱所對應(yīng)的響應(yīng)標(biāo)記,如:獲取單個(gè)商品(taobao.item.get)的響應(yīng)最外層為"item_get_response": ,表示這是獲取單個(gè)商品的響應(yīng);中間一層是返回結(jié)構(gòu)體的標(biāo)記。如果結(jié)構(gòu)體是單個(gè),那么2.0返回的這一層里面就會是單個(gè)的結(jié)構(gòu),如:獲取的單個(gè)商品的結(jié)構(gòu)體就是"item": ;反之,如果結(jié)構(gòu)體是多個(gè),那么列表也會明顯的表示出來,如:搜索商品列表的結(jié)構(gòu)體就會是”items”
4、:“item”: , 。最外層的items表示這是一個(gè)商品的列表,后面的item表示列表中的每一個(gè)子結(jié)構(gòu)體都是屬于商品item的,然后就跟著商品的數(shù)據(jù);最內(nèi)一層就商品的具體字段信息了。2. 調(diào)用錯(cuò)誤返回當(dāng)調(diào)用發(fā)生錯(cuò)誤的時(shí)候,一般情況下可以分為幾大類錯(cuò)誤信息的返回:http連接錯(cuò)誤、平臺解析錯(cuò)誤、業(yè)務(wù)處理錯(cuò)誤。這三種類型的錯(cuò)誤分別代表了:淘寶服務(wù)器、淘寶接入平臺、top-api業(yè)務(wù),幾個(gè)層次上出現(xiàn)的問題。1) http連接錯(cuò)誤http連接錯(cuò)誤是請求通信過程中出現(xiàn)的錯(cuò)誤,這類型錯(cuò)誤通常由http響應(yīng)碼標(biāo)記出來。http響應(yīng)碼由三位十進(jìn)制數(shù)字組成,它們出現(xiàn)在由HTTP服務(wù)器發(fā)送的響應(yīng)的第一行。響應(yīng)碼
5、分五種類型,由它們的第一位數(shù)字表示:1xx:信息,請求收到,繼續(xù)處理2xx:成功,行為被成功地接受、理解和采納3xx:重定向,為了完成請求,必須進(jìn)一步執(zhí)行的動(dòng)作4xx:客戶端錯(cuò)誤,請求包含語法錯(cuò)誤或者請求無法實(shí)現(xiàn)5xx:服務(wù)器錯(cuò)誤,服務(wù)器不能實(shí)現(xiàn)一種明顯無效的請求Isv調(diào)用top服務(wù)最常收到就是200:http請求成功;404:未找到請求的服務(wù);500內(nèi)部服務(wù)器錯(cuò)誤等等。如果用戶收到的響應(yīng)碼是404,表示用戶的網(wǎng)絡(luò)有問題或者top被和諧了如果用戶收到的響應(yīng)碼是500,表示網(wǎng)絡(luò)是ok的,是top的服務(wù)無法響應(yīng)。2) 服務(wù)端錯(cuò)誤總述平臺解析錯(cuò)誤和業(yè)務(wù)處理錯(cuò)誤都是http成功訪問到top服務(wù)(htt
6、p響應(yīng)碼返回為200)之后所產(chǎn)生的錯(cuò)信息,他們top處理isv請求過程中出現(xiàn)的問題。2.0的錯(cuò)誤響應(yīng)信息的最外層為“error_response”:” ”,表示這是調(diào)用服務(wù)失敗所返回的錯(cuò)誤信息。信息體里面一層總共包含了五個(gè)元素:"args":"arg":“key”:“ ”,”value”:” ”,“key”:“ ”,”value”:” ”,“key”:“ ”,”value”:” ”,”code”:” ”, “msg”:” ”,”sub_code”:” ”和”sub_msg”:” ”。args表示用戶傳入的參數(shù)列表是什么,里面是一個(gè)arg的列表會包含用戶傳
7、入的所有參數(shù)信息,每個(gè)arg表示一個(gè)參數(shù)的信息,key表示參數(shù)的名稱,value表示參數(shù)的內(nèi)容,用以方便用戶定位自己的錯(cuò)誤;code表示用戶調(diào)用錯(cuò)誤的錯(cuò)誤碼是多少,小于200表示平臺級錯(cuò)誤,200-1000之間表示大范圍的業(yè)務(wù)錯(cuò)誤,即哪一類型的api調(diào)用發(fā)生了錯(cuò)誤(根據(jù)api的大類來分,如:商品類的api是530,交易類的api是520,等);msg表示大類型的錯(cuò)誤碼所對應(yīng)的錯(cuò)誤信息,一般不具備獨(dú)立的debug作用,需要和sub_code和sub_msg一起使用才行;sub_code是調(diào)用錯(cuò)誤的子錯(cuò)誤碼,他表示用戶調(diào)用錯(cuò)誤的原因;sub_msg是子錯(cuò)誤碼所對應(yīng)的錯(cuò)誤信息,他用來補(bǔ)充細(xì)化子錯(cuò)誤碼
8、的錯(cuò)誤原因的。例如調(diào)用2.0的taobao.item.get服務(wù)錯(cuò)誤時(shí)返回的錯(cuò)誤信息:"error_response":"args":"arg":"key":"app_key","value":"15739","key":"fields","value":"list_time,delist_time,approve_status","key":"f
9、ormat","value":"json","key":"method","value":"taobao.item.get","key":"nick","value":"tbtest561","key":"partner_id","value":"TOPTEST","key":"
10、sign","value":"668FB4A049F71A1C845EF8C05B1F3E66","key":"timestamp","value":"2010-03-05 18:03:06.325","key":"v","value":"2.0","code":530,"msg":"Remote service error",
11、"sub_code":"missing-parameter","sub_msg":"iid和num_iid至少要傳入一個(gè)"這個(gè)信息的開頭為error_response,表示這是調(diào)用錯(cuò)誤所返回的錯(cuò)誤信息。里面的args列出了用調(diào)用這個(gè)接口傳入的信息有:"key":"app_key","value":"15739","key":"fields","value":"list
12、_time,delist_time,approve_status","key":"format","value":"json","key":"method","value":"taobao.item.get","key":"nick","value":"tbtest561","key":"partner_id"
13、;,"value":"TOPTEST","key":"sign","value":"668FB4A049F71A1C845EF8C05B1F3E66","key":"timestamp","value":"2010-03-05 18:03:06.325","key":"v","value":"2.0"這些信息是從用戶的
14、請求信息里面解析出來的。錯(cuò)誤碼code為530,表示這是調(diào)用商品的api所產(chǎn)生的錯(cuò)誤。錯(cuò)誤信息msg為Remote service error表示這是調(diào)用業(yè)務(wù)處理所產(chǎn)生的錯(cuò)誤。子錯(cuò)誤碼sub_code為:missing-parameter,表示這個(gè)錯(cuò)誤是因?yàn)槿鄙倭藚?shù)所產(chǎn)生的。子錯(cuò)誤信息sub_msg為:iid和num_iid至少要傳入一個(gè),表示少傳的參數(shù)為iid或num_iid。這所有的錯(cuò)誤信息疊加起來可以知道,這個(gè)錯(cuò)誤是用戶調(diào)用taobao.item.get接口時(shí)業(yè)務(wù)處理發(fā)現(xiàn)用戶沒有傳入商品id所導(dǎo)致的。3) 平臺解析錯(cuò)誤平臺解析錯(cuò)誤是指top返回的錯(cuò)誤碼小于100的情況。平臺解析是非業(yè)務(wù)
15、性的普適的校驗(yàn)接入層,主要用于對用戶的各種權(quán)限、和入?yún)⑦M(jìn)行最基本的校驗(yàn)?,F(xiàn)在的平臺錯(cuò)誤碼主要有:錯(cuò)誤碼 錯(cuò)誤描述(英文) 錯(cuò)誤描述(中文) 錯(cuò)誤來源3Upload Fail 圖片上傳失敗 平臺本身4User Call Limited 用戶調(diào)用次數(shù)超限 ISV5Session Call Limited 會話調(diào)用次數(shù)超限 ISV6Partner Call Limited 合作伙伴調(diào)用次數(shù)超限 ISV7App Call Limited 應(yīng)用調(diào)用次數(shù)超限 ISV8App Call Exceeds Limited Frequency 應(yīng)用調(diào)用頻率超限 ISV9Http Action Not Allowe
16、d HTTP方法被禁止(請用大寫的POST或GET) ISV10Service Currently Unavailable 服務(wù)不可用 平臺本身11Insufficient ISV Permissions 開發(fā)者權(quán)限不足 ISV12Insufficient User Permissions 用戶權(quán)限不足 ISV13Insufficient Partner Permissions 合作伙伴權(quán)限不足 ISV15Remote Service Error 遠(yuǎn)程服務(wù)出錯(cuò) 平臺本身21Missing Method 缺少方法名參數(shù) 平臺本身22Invalid Method 不存在的方法名 ISV23Inva
17、lid Format 非法數(shù)據(jù)格式 ISV24Missing Signature 缺少簽名參數(shù) ISV25Invalid Signature 非法簽名 ISV26Missing Session 缺少SessionKey參數(shù) 平臺本身27Invalid Session 非法的SessionKey參數(shù) ISV28Missing App Key 缺少AppKey參數(shù) 平臺本身29Invalid App Key 非法的AppKey參數(shù) ISV30Missing Timestamp 缺少時(shí)間戳參數(shù) 平臺本身31Invalid Timestamp 非法的時(shí)間戳參數(shù) ISV32Missing Version
18、 缺少版本參數(shù) 平臺本身33Invalid Version 非法的版本參數(shù) ISV34Unsupported Version 不支持的版本號 ISV40Missing Required Arguments 缺少必選參數(shù) 平臺本身41Invalid Arguments 非法的參數(shù) ISV42Forbidden Request 請求被禁止 ISV43Parameter Error 參數(shù)錯(cuò)誤 ISV 圖表 2 平臺錯(cuò)誤碼列表Isv可以通過錯(cuò)誤碼和解釋來糾正問題。如:錯(cuò)誤碼為3的響應(yīng)表示圖片上傳失敗,錯(cuò)誤碼為26表示用戶沒有傳入session參數(shù),錯(cuò)誤碼為27表示用戶傳入的session參數(shù)找不到對應(yīng)
19、的session記錄,等等。4) 業(yè)務(wù)處理錯(cuò)誤業(yè)務(wù)處理錯(cuò)誤是用戶通過平臺校驗(yàn)進(jìn)入業(yè)務(wù)流程出現(xiàn)了錯(cuò)誤所發(fā)出來的2.0調(diào)用失敗后服務(wù)器所返回的錯(cuò)誤信息格式就是:“error_response”:"args":"arg":“key”:“ ”,”value”:” ”,“key”:“ ”,”value”:” ”,“key”:“ ”,”value”:” ”,”code”:” ”,“msg”:” ”,”sub_code”:” ”,”sub_msg”:” ”,里面的code是數(shù)字形式的標(biāo)記著一種業(yè)務(wù)類型的錯(cuò)誤編碼,msg則是比較大范圍內(nèi)的表示錯(cuò)誤類型的字符串。而sub_
20、code是以字符串形式粗略表示錯(cuò)誤的類型,sub_msg則是表示具體的錯(cuò)誤原因。2.0的code包含以下幾種分類:產(chǎn)品線錯(cuò)誤碼用戶500類目510交易520退款521商品530商品擴(kuò)展API531郵費(fèi)模板532產(chǎn)品540物流550店鋪560評價(jià)570淘寶客580系統(tǒng)590備案591增量API600比價(jià)610畫報(bào)620江湖630分銷640淘秀650收費(fèi)660Misc(保證金等雜項(xiàng)api)670圖表 3 業(yè)務(wù)處理錯(cuò)誤碼分類列表由上圖可知,每一大類的api在2.0中其實(shí)是共享一個(gè)code的,它能讓用戶在復(fù)雜組合調(diào)用中指導(dǎo)是哪一類的api出現(xiàn)了問題,實(shí)現(xiàn)初步的定位。2.0的業(yè)務(wù)錯(cuò)誤中,msg里面最容易
21、出現(xiàn)的內(nèi)容就是Remote service error,這表示用戶是在通過了平臺校驗(yàn)后進(jìn)行業(yè)務(wù)流程的時(shí)候出現(xiàn)的錯(cuò)誤。其他的錯(cuò)誤還有Remote Service Timeout:后臺處理業(yè)務(wù)超時(shí)等等的錯(cuò)誤。這一個(gè)錯(cuò)誤信息的力度比較粗,很難單獨(dú)用地進(jìn)行錯(cuò)誤處理。2.0的業(yè)務(wù)處理錯(cuò)誤信息主要要看sub_code和sub_msg這兩個(gè)字段。sub_code表示了服務(wù)對業(yè)務(wù)錯(cuò)誤的分類,sub_msg表示了是錯(cuò)誤原因。sub_code根據(jù)業(yè)務(wù)錯(cuò)誤類型主要可以分為如下幾類:子錯(cuò)誤碼格式錯(cuò)誤信息isv.#-not-exist:*根據(jù)*查詢不到#isv.missing-parameter:*缺少必要的參數(shù)*is
22、v.invalid-paramete:*參數(shù)*無效,格式不對、非法值、越界等isv.invalid-permission權(quán)限不夠、非法訪問isv.parameters-mismatch:*-and-#傳入的參數(shù)*和#不匹配,兩者有一定的對應(yīng)關(guān)系isv.*-service-error:#調(diào)用*服務(wù)返回false,業(yè)務(wù)邏輯錯(cuò)誤,#表示具體的錯(cuò)誤信息isp.*-service-unavailable調(diào)用后端服務(wù)*拋異常,服務(wù)不可用isp.remote-service-error連接遠(yuǎn)程服務(wù)錯(cuò)誤isp.remote-service-timeout連接遠(yuǎn)程服務(wù)超時(shí)isp.remote-connectio
23、n-error遠(yuǎn)程連接錯(cuò)誤isp.null-pointer-exception空指針異常錯(cuò)誤isp.top-parse-errorapi解析錯(cuò)誤(出現(xiàn)了未被明確控制的異常信息)isp.top-remote-connection-timeouttop平臺連接后端服務(wù)超時(shí)isp.top-remote-connection-errortop平臺連接后端服務(wù)錯(cuò)誤,找不到服務(wù)isp.top-mapping-parse-errortop-mapping轉(zhuǎn)換出錯(cuò),主要是由于傳入?yún)?shù)格式不對,top需要加強(qiáng)判斷isp.unknown-errortop平臺連接后端服務(wù)拋未知異常信息圖表 4 子錯(cuò)誤碼列表從上面的
24、錯(cuò)誤列表中可以看出,以isv開頭的一般都是isv的錯(cuò)誤,這一類錯(cuò)誤一般是由于用戶提供的參數(shù)不合法或者不匹配造成的,因此isv應(yīng)該根據(jù)錯(cuò)誤信息檢驗(yàn)是否傳入了相應(yīng)的信息,對于這一類錯(cuò)誤建議改正后再重試;以isp開頭的錯(cuò)誤一般是isp服務(wù)不可用或top平臺連接后端服務(wù)時(shí)的錯(cuò)誤,這些錯(cuò)誤可能與后臺服務(wù)端的服務(wù)可用性有關(guān),建議用戶在一段時(shí)間后重試。錯(cuò)誤響應(yīng)時(shí)用戶和服務(wù)器交互失敗的最直接展示,isv在調(diào)用top服務(wù)時(shí),如果調(diào)用失敗,請盡量保留下錯(cuò)誤信息以便進(jìn)行后面的錯(cuò)誤追查。三、 響應(yīng)格式錯(cuò)誤處理響應(yīng)格式錯(cuò)誤是指用戶調(diào)用top服務(wù)時(shí),傳入?yún)?shù)設(shè)置了format參數(shù)為json,但是接受到的卻為xml的響應(yīng)格
25、式,或者設(shè)置格式為xml接收到的卻為json響應(yīng)的格式的情況。一般正常情況下這種情況是不會出現(xiàn)的,但是還是會有一些異常的情況會引起這個(gè)問題。這種響應(yīng)格式錯(cuò)誤的問題在isv的程序中通常會表現(xiàn)為,響應(yīng)解析格式錯(cuò)誤。例如:用戶使用的top的java SDK客戶端調(diào)用top服務(wù),設(shè)置的format格式為json卻得到了一個(gè)xml的響應(yīng),這是sdk就會報(bào)一個(gè)錯(cuò)誤說響應(yīng)開始處缺少一個(gè)“”符號。這是因?yàn)閤ml響應(yīng)是以“<”開始的緣故。一般會發(fā)生這種現(xiàn)象的原因有一下三種:用戶傳入的參數(shù)過大導(dǎo)致流解析異常,用戶調(diào)用太過頻繁導(dǎo)致的響應(yīng)異常,top服務(wù)器故障。為了定位到問題出在哪里,以便找到相應(yīng)的解決方法,用
26、戶在遇到響應(yīng)格式錯(cuò)誤的情況時(shí)可以參考以下步驟進(jìn)行調(diào)試。圖表 5 響應(yīng)格式錯(cuò)誤處理流程1. 響應(yīng)格式格式錯(cuò)誤,但數(shù)據(jù)正確用戶第一步應(yīng)該分析一下相應(yīng)的內(nèi)容里面是不是除了格式錯(cuò)誤以外,其他的響應(yīng)內(nèi)容都是正確調(diào)用的返回結(jié)果。例如,有個(gè)用戶用top的sdk,設(shè)置format為json,調(diào)用top得到了這樣一個(gè)返回結(jié)果:com.taobao.api.json.JSONException: A JSONObject text must begin with '' at character 1&
27、#160;<?xml version="1.0" encoding="utf-8" ?><rsp><totalResults>1115</totalResults><item><iid><!CDATA77a003aef35f8d959eef03d7ba3d23e3></iid><modified>2010-03-01 16:04:15</modified></item><item
28、><iid><!CDATAc559afab73ab721a8e7500b62864add0></iid><modified>2010-03-01 16:04:05</modified></item><item><iid><!CDATA28a3410c88bc2ba2471080ce8891eaf7></iid><modified>2010-03-01 16:03:59</modified></item><it
29、em><iid><!CDATA915383f4733b7a7c2549aa863d305995></iid><modified>2010-03-01 16:03:53</modified></item><item><iid><!CDATA528223dc2d67213aa29ab84c74c6a60a></iid><modified>2010-03-01 07:30:52</modified></item><
30、/rsp>從這個(gè)異常的開頭可以看到,這是sdk的json解析拋了一個(gè)異常,說響應(yīng)內(nèi)容的內(nèi)容應(yīng)該是以“”開始的。這說名,isv收到的響應(yīng)格式肯定出了問題。再看一下響應(yīng)的內(nèi)容<rsp></rsp>相應(yīng)結(jié)果標(biāo)簽之間包含了totalResults和item列表,這些數(shù)據(jù)表明,這是調(diào)用商品查詢接口返回的結(jié)果數(shù)據(jù):查詢到的結(jié)果總數(shù)是1115條,當(dāng)前頁的商品iid和最近修改時(shí)間也在其中。這些查詢結(jié)果數(shù)據(jù)是正常的,但是返回格式卻不是傳入的json而是變成了xml。這位isv聯(lián)系了top的技術(shù)支持,在建議減緩調(diào)用頻率以后,返回的數(shù)據(jù)格式正常了,這樣就臨時(shí)控制了這種情況的發(fā)生。同時(shí)技
31、術(shù)支持將這些情況反映到了開發(fā),top這邊后續(xù)就會找到問題根源,進(jìn)一步杜絕這種情況的發(fā)生。2. 響應(yīng)格式錯(cuò)誤,數(shù)據(jù)也錯(cuò)誤如果用戶第一步分析發(fā)現(xiàn),返回的信息并不是調(diào)用成功的信息而是某個(gè)平臺錯(cuò)誤,而且用戶本身的參數(shù)并不會導(dǎo)致這個(gè)錯(cuò)誤的產(chǎn)生,此時(shí)用戶就需要查看自己調(diào)用接口的參數(shù)了。如果用戶調(diào)用的接口需要傳入比較大的數(shù)據(jù)(如:圖片、商品的長篇描述等等),那么用戶應(yīng)首先嘗試著減小這些入?yún)⒌胶戏ǚ秶鷥?nèi)輸入(傳入小圖片或者只傳入少量的描述文字等)。如果用戶調(diào)用成功,表示錯(cuò)誤是因?yàn)橛脩羧雲(yún)⑻笤斐闪私馕鲥e(cuò)誤引起的,用戶應(yīng)配合自己所在地方的網(wǎng)速,請求大小等等的信息合理設(shè)置自己的參數(shù)大小和接口調(diào)用順序。如果用戶減小
32、參數(shù)還是解析失敗的話,用戶嘗試著不傳入圖片或只傳入幾個(gè)字節(jié)的描述的內(nèi)容進(jìn)行接口調(diào)用。在傳入描述只有很少的字節(jié)的情況下:如果不傳圖片調(diào)用成功了,那么應(yīng)該是top的服務(wù)器的問題,請將這個(gè)情況反饋給技術(shù)支持進(jìn)行解決;如果圖片不傳調(diào)用仍然失敗了,那么應(yīng)該是用戶的調(diào)用參數(shù)或網(wǎng)絡(luò)有問題,請仔細(xì)對照文檔說明對參數(shù)進(jìn)行修改或等待網(wǎng)絡(luò)狀態(tài)好一點(diǎn)的時(shí)候進(jìn)行調(diào)用??偟膩碚f,如果用戶發(fā)生了響應(yīng)格式錯(cuò)誤的情況,一般分為三種情況:用戶本身傳入的format就是錯(cuò)誤的,這種情況用戶需要查看自己傳入的參數(shù)是否正確;用戶通信的網(wǎng)絡(luò)太差,服務(wù)端造成請求解析失敗而丟失了format信息,這種情況下用戶需要調(diào)整自己的網(wǎng)絡(luò)通信情況,等
33、狀況恢復(fù)再調(diào)用;如果是其他由于圖片或調(diào)用太頻繁而引起的問題,用戶需要減小圖片或減緩調(diào)用來提高成功率,并且將這些情況通報(bào)給top技術(shù)支持的同學(xué)。四、 平臺級錯(cuò)誤處理在前文的錯(cuò)誤綜述中介紹過,top的錯(cuò)誤可以分為平臺級錯(cuò)誤和業(yè)務(wù)級錯(cuò)誤。所謂平臺級錯(cuò)誤就是指:錯(cuò)誤碼小于100的調(diào)用錯(cuò)誤。這種錯(cuò)誤一般是由于用戶的請求不符合各種的基本校驗(yàn)而引起的。下面將對于各種平臺級錯(cuò)誤及相應(yīng)的解決辦法陳列于此。錯(cuò)誤碼錯(cuò)誤解釋解決辦法3圖片上傳失敗將傳入的圖片格式改為正確的格式、適當(dāng)?shù)拇笮〉膱D片放進(jìn)消息體里面?zhèn)鬏斶^來。如果傳輸仍然失敗需要減小圖片大小或者增加網(wǎng)絡(luò)帶寬進(jìn)行嘗試4用戶調(diào)用次數(shù)超限調(diào)整程序邏輯合理利用api,
34、等第二天再調(diào)用?;蛘呦蚣夹g(shù)運(yùn)維的同學(xué)申請?jiān)黾诱{(diào)用次數(shù)5會話調(diào)用次數(shù)超限6合作伙伴調(diào)用次數(shù)超限7應(yīng)用調(diào)用次數(shù)超限8應(yīng)用調(diào)用頻率超限Isv調(diào)節(jié)api調(diào)用頻率,不能太過頻繁的調(diào)用9HTTP方法被禁止請用大寫的POST或GET,如果有圖片等信息傳入則一定要用POST才可以10服務(wù)不可用多數(shù)是由未知異常引起的,用戶仔細(xì)檢查自己傳入的參數(shù)是否符合文檔中描述的樣子11開發(fā)者權(quán)限不足appKey所對應(yīng)的應(yīng)用不具備權(quán)限調(diào)用當(dāng)前接口。需要聯(lián)系運(yùn)營或技術(shù)支持的同學(xué)開通調(diào)用該接口的權(quán)限。12用戶權(quán)限不足13合作伙伴權(quán)限不足15遠(yuǎn)程服務(wù)出錯(cuò)Api調(diào)用后端服務(wù)出錯(cuò),isv首先查看自己的參數(shù)是否合法,如果參數(shù)沒有問題請過一
35、段時(shí)間再嘗試,如果還不行請聯(lián)系技術(shù)支持21缺少方法名參數(shù)傳入的參數(shù)加入method字段22不存在的方法名傳入的method字段必需是你所調(diào)用的api的名稱,并且該api是確實(shí)存在的23非法數(shù)據(jù)格式傳入的format必需為json或xml中的一種24缺少簽名參數(shù)傳入的參數(shù)中必需包含sign字段25非法簽名簽名必需根據(jù)正確的算法算出來的。算法請見:簽名算法26缺少SessionKey參數(shù)傳入的參數(shù)中必需包含session字段27非法的SessionKey參數(shù)傳入的session必需是用戶綁定session拿到的。如果報(bào)session不合法可能是用戶沒有綁定session或session過期造成的,
36、用戶需要重新綁定一下然后傳入新的sessionKey。28缺少AppKey參數(shù)傳入的參數(shù)必需包含app_key字段29非法的AppKey參數(shù)用戶傳入的appKey參數(shù)確實(shí)是要存在的,如果沒有申請appKey的同學(xué)請去申請appKey,如果是已經(jīng)有了appKey卻調(diào)用不同過的,請聯(lián)系技術(shù)支持解決30缺少時(shí)間戳參數(shù)傳入的參數(shù)中必需包含timestamp參數(shù)31非法的時(shí)間戳參數(shù)用戶傳入的時(shí)間戳不合法。時(shí)間戳,格式為yyyy-mm-dd hh:mm:ss,例如:2008-01-25 20:23:30。淘寶API服務(wù)端允許客戶端請求時(shí)間誤差為10分鐘。32缺少版本參數(shù)傳入的參數(shù)中必需包含v字段33非法的
37、版本參數(shù)用戶傳入的版本號格式錯(cuò)誤,必需為數(shù)字格式34不支持的版本號用戶傳入的版本號沒有被提供?,F(xiàn)在top只支持2.0的版本,1.0版本已經(jīng)下線。40缺少必選參數(shù)用戶傳入的參數(shù)中漏掉了必傳的參數(shù)。請仔細(xì)對照文檔檢查41非法的參數(shù)用戶傳入的參數(shù)不符合文檔中說明的參數(shù)格式,請參照文檔進(jìn)行修改42請求被禁止請求 被禁止(目前沒有在控制)43參數(shù)錯(cuò)誤參數(shù)解析發(fā)生錯(cuò)誤或異常。一般是用戶傳入?yún)?shù)非法引起的。請仔細(xì)檢查入?yún)⒏袷?、范圍、是否一一對?yīng)等等情況。44Isp error后臺接入服務(wù)錯(cuò)誤這種后臺服務(wù)異常引起的錯(cuò)誤,請聯(lián)系技術(shù)支持。45非法的版本號,API1.0已經(jīng)關(guān)閉,建議使用2.0圖表 6 平臺級錯(cuò)誤
38、碼及其解決方案基本上來說,平臺錯(cuò)誤是一個(gè)通用的、普適的校驗(yàn)。一般針對用戶的權(quán)限、安全、流量和最基本的參數(shù)等等進(jìn)行校驗(yàn)。用戶遇到這些錯(cuò)誤的返回一定要第一步檢查自己的權(quán)限、頻率等情況;然后就需要參照文檔檢驗(yàn)一下自己的傳入的參數(shù)是否完整且合法;如果這些都無法解決問題,請聯(lián)系技術(shù)支持的同學(xué)進(jìn)行反饋,top后臺會盡快解決這些問題。五、 業(yè)務(wù)級錯(cuò)誤處理業(yè)務(wù)級錯(cuò)誤是指isv請求進(jìn)入top業(yè)務(wù)處理以后爆出來的業(yè)務(wù)相關(guān)的錯(cuò)誤。Top的業(yè)務(wù)錯(cuò)誤一般可以分為4個(gè)大類:參數(shù)錯(cuò)誤、權(quán)限控制、用戶不存在和服務(wù)錯(cuò)誤。詳細(xì)的分類可參見“圖表4子錯(cuò)誤碼列表”。1. 參數(shù)錯(cuò)誤參數(shù)錯(cuò)誤指topapi根據(jù)業(yè)務(wù)要求對用戶傳入的參數(shù)進(jìn)行
39、校驗(yàn)組裝的時(shí)候產(chǎn)生的錯(cuò)誤。2.0中的參數(shù)錯(cuò)誤的錯(cuò)誤碼是在調(diào)用返回的sub_code子錯(cuò)誤碼里面得到具體體現(xiàn)的。2.0的參數(shù)錯(cuò)誤一般有如下幾個(gè)錯(cuò)誤碼:missing-parameter,invalid-parameter,parameters-mismatch,XXX-not-exist等等。missing-parameter表示缺少了某些必傳參數(shù)(如:獲取單個(gè)商品是iid和num_iid一個(gè)都沒傳入);invalid-parameter表示用戶傳入的參數(shù)錯(cuò)誤(如:傳入的iids個(gè)數(shù)不符合規(guī)定,傳入的iid對應(yīng)的商品已刪除等等);parameters-mismatch表示用戶傳入的某些有對應(yīng)關(guān)系
40、的參數(shù)個(gè)數(shù)不匹配了(如:input_pids和input_str長度不匹配,或者sku_properties和sku的其他參數(shù)個(gè)數(shù)不匹配);XXX-not-exist表示用戶指定的參數(shù)找不到對應(yīng)的記錄(即這個(gè)參數(shù)所對應(yīng)的記錄不存在或已經(jīng)被刪除了)。這些參數(shù)錯(cuò)誤,都是由于isv傳入的參數(shù)有問題而引起的。用戶在遇到報(bào)參數(shù)錯(cuò)誤的情況下,需要查看對應(yīng)的錯(cuò)誤消息內(nèi)容(2.0是sub_msg)中的說明來進(jìn)行入?yún)⑿薷?。建議將這部分內(nèi)容展示給用戶,可以讓用直觀的看到錯(cuò)誤的原因,從而改進(jìn)輸入。2. 權(quán)限控制權(quán)限控制的錯(cuò)誤是指用戶使用了自己不享有的服務(wù)所造成的錯(cuò)誤。這類型的錯(cuò)誤: 2.0的子錯(cuò)誤碼為:invali
41、d-permission。這類型的錯(cuò)誤通常都是用戶進(jìn)行的操作觸碰到了淘寶的業(yè)務(wù)規(guī)則,導(dǎo)致了top的業(yè)務(wù)校驗(yàn)不通過。如:用戶沒有登錄卻要獲取某個(gè)賣家倉庫中的商品,用戶不享有多圖服務(wù)卻要上傳商品多圖或商品屬性圖片,成人類目直接上傳圖片,修改自動(dòng)發(fā)貨的商品,不是賣家或買家卻要獲取交易詳細(xì)信息的這些錯(cuò)誤并不是用戶傳入的參數(shù)找不到相應(yīng)的數(shù)據(jù)、或者傳入的參數(shù)是錯(cuò)誤的造成的。相反的,用戶傳入的參數(shù)都符合文檔描述,但是用戶不具備權(quán)限來進(jìn)行相應(yīng)的操作。在這種情況下,isv有幾條路可以選擇:第一:對于查詢類型的權(quán)限控制:如果用戶是信息的所有者,那么需要讓用戶進(jìn)行登錄綁定,這樣用戶就夠進(jìn)行權(quán)限控制的操作了;如果用戶
42、不是信息的合法查看人,那么isv要明確的告訴用戶這個(gè)操作不可以進(jìn)行,并且不要進(jìn)行重試操作了。第二:對于增刪改類型的操作的權(quán)限控制:如果用戶是因?yàn)闆]有享有服務(wù)(如:沒有享有圖片空間的服務(wù))而產(chǎn)生的權(quán)限限制,isv需要引導(dǎo)用戶去進(jìn)行服務(wù)的開通后再來進(jìn)行操作,之后再重新調(diào)用接口;如果是因?yàn)橛脩舨僮髁藙e人的數(shù)據(jù)而引起的權(quán)限控制,那么isv要明確的跟用戶報(bào)錯(cuò),并且不能再進(jìn)行重試操作??傊?,當(dāng)用戶遇到報(bào)權(quán)限控制的錯(cuò)誤時(shí),isv不能直接進(jìn)行重試。應(yīng)該將問題直接告訴用戶,并引導(dǎo)用戶進(jìn)行相關(guān)的登錄、開通服務(wù)等操作來調(diào)整權(quán)限以后,再讓用戶重試操作。如果用戶不愿意進(jìn)行調(diào)整,isv此時(shí)應(yīng)該直接停止該操作,不能默認(rèn)的進(jìn)
43、行重試,因?yàn)檫@種前提下,重試是完全沒有作用的。3. 用戶不存在用戶不存在是指top后臺根據(jù)用戶綁定的nick或者傳入的nick對用戶信息進(jìn)行查詢的時(shí)候找不到用戶記錄所報(bào)出的錯(cuò)誤。2.0的子錯(cuò)誤碼:user-not-exist。用戶遇到這種問題首先請確認(rèn)調(diào)用的這個(gè)接口自己有沒有傳入nick這個(gè)參數(shù)。如果nick是根據(jù)用戶綁定的session取得的,那么用戶需要過一會兒再重新調(diào)用看看。如果隔一段時(shí)間還不行,請聯(lián)系技術(shù)支持解決。如果用戶自己通過參數(shù)傳入了nick,那么請用戶仔細(xì)檢查自己傳入的nick是否正確。例如:有沒有多一個(gè)空格或者大小寫錯(cuò)誤的?該用戶是否確實(shí)存在的?等等。如果問題是因?yàn)槊Q錯(cuò)誤或
44、用戶確實(shí)不存在引起,用戶需要更改輸入?yún)?shù)后才能再次調(diào)用。如果用戶名稱正確,用戶也確實(shí)存在,卻還是報(bào)用戶不存在錯(cuò)誤,用戶需要檢查傳入的nick是否包含難以識別的編碼的字體。如果nick中包含了火星文或者其他編碼的字體,請考慮將nick轉(zhuǎn)換成utf8以后重新嘗試或者放棄此次操作。如果上述問題都不存在,請聯(lián)系技術(shù)支持的同學(xué)進(jìn)行查看。用戶不存在的整個(gè)查錯(cuò)過程如下所示:圖表 7 user-not-exist錯(cuò)誤的查錯(cuò)流程4. 服務(wù)錯(cuò)誤服務(wù)錯(cuò)誤主要指用戶的請求通過了api業(yè)務(wù)的基本校驗(yàn),在調(diào)用后臺服務(wù)的時(shí)候由于出現(xiàn)了異常或者更進(jìn)步的業(yè)務(wù)報(bào)錯(cuò)而產(chǎn)生的錯(cuò)誤。這一類錯(cuò)誤主要分為4個(gè)大類:服務(wù)調(diào)用錯(cuò)誤、服務(wù)調(diào)用異
45、常、遠(yuǎn)程調(diào)用錯(cuò)誤、top解析錯(cuò)誤。a) 服務(wù)調(diào)用錯(cuò)誤服務(wù)調(diào)用錯(cuò)誤,是指通過top校驗(yàn)進(jìn)入后端調(diào)用服務(wù)以后,由于不符合進(jìn)一步的業(yè)務(wù)邏輯校驗(yàn)而出現(xiàn)的錯(cuò)誤。如:發(fā)布商品的屬性不符合商品類目的要求,評價(jià)的交易已經(jīng)過期等等。這些錯(cuò)誤在2.0的返回子錯(cuò)誤碼為:XXX-service-error。用戶遇到這種返回表明top的服務(wù)是正常的,是用戶的參數(shù)不合規(guī)定所引起。請根據(jù)返回的具體msg和sub_msg內(nèi)容定位問題,然后改正入?yún)⒑笤僬{(diào)用。如果確認(rèn)參數(shù)正確卻一直通不過調(diào)用,請聯(lián)系技術(shù)支持的同學(xué)咨詢情況,切勿盲目重試。b) 服務(wù)調(diào)用異常服務(wù)調(diào)用異常是指服務(wù)調(diào)用過程中由于后端服務(wù)器沒有響應(yīng)或者產(chǎn)生了異?;蛘遲op
46、服務(wù)本身產(chǎn)生了未被捕獲的異常而產(chǎn)生的錯(cuò)誤。這些錯(cuò)誤在2.0的返回子錯(cuò)誤碼為:XXX-service-unavailable。這種錯(cuò)誤有可能是后端服務(wù)暫時(shí)不可用所引起的,所以用戶遇到這種錯(cuò)誤時(shí)首先應(yīng)該查看返回的錯(cuò)誤信息里面有沒有有效的提示信息,如果有請先按照提示改正問題再調(diào)用;如果沒有有效的提示信息,請等待一段時(shí)間再調(diào)用。如果一直都是這個(gè)錯(cuò)誤,請聯(lián)系技術(shù)支持查看問題所在。切忌立即反復(fù)重試。c) 遠(yuǎn)程調(diào)用錯(cuò)誤遠(yuǎn)程調(diào)用錯(cuò)誤是指top在調(diào)用后方服務(wù)時(shí)發(fā)生了調(diào)用錯(cuò)誤或超時(shí)的情況。這類錯(cuò)誤可能是由于后端服務(wù)過于繁忙或者服務(wù)失效引起的。這些錯(cuò)誤在2.0的返回子錯(cuò)誤碼為:remote-service-erro
47、r,remote-service-timeout,remote-connection-error。用戶遇到這種情況,首先考慮的是等待一段時(shí)間重試看服務(wù)是否恢復(fù)。如果服務(wù)已經(jīng)恢復(fù),則這個(gè)只是短時(shí)間服務(wù)過于擁擠造成的;如果多次重試仍然是不可用,那么這個(gè)可能是后端服務(wù)出了問題,請聯(lián)系技術(shù)支持進(jìn)行處理。d) Top解析錯(cuò)誤Top解析錯(cuò)誤目前主要針對的是用戶調(diào)用top服務(wù)時(shí)產(chǎn)生的未被捕獲的空指針或者參數(shù)轉(zhuǎn)換異常所產(chǎn)生的錯(cuò)誤。這些錯(cuò)誤是由于用戶的請求有錯(cuò)誤引發(fā)了top本身的服務(wù)流程的潛在隱患所引起的。在2.0的返回子錯(cuò)誤碼為:top-parse-error。用戶遇到這種問題時(shí),請先仔細(xì)檢查自己的參數(shù),根據(jù)
48、文檔說明修改完善以后再嘗試調(diào)用,一般正常情況,只要入?yún)⒑戏ㄊ悄軌虺晒Φ?。如果確定參數(shù)正確的前提下還是調(diào)用報(bào)這個(gè)錯(cuò)誤,請聯(lián)系技術(shù)支持的同學(xué)反饋這個(gè)問題。六、 返回參數(shù)缺失處理返回參數(shù)缺失是指用戶調(diào)用api返回成功,但是消息體里面的內(nèi)容和所請求的內(nèi)容不一致的情況。這種情況細(xì)分可以分為三種情況:整個(gè)消息體為空、消息體缺少文檔定義的結(jié)構(gòu)返回、返回的結(jié)構(gòu)體中缺少fields指定的某些字段的返回。1. 整個(gè)消息體為空或缺少文檔中說明的結(jié)構(gòu)體返回。整個(gè)消息體為空或缺少文檔中說明的結(jié)構(gòu)體是指:返回結(jié)果是非失敗的情況下,得到的Response的body內(nèi)容和文檔定義不一致(比文檔寫到要缺少某些內(nèi)容)的情況。例如:調(diào)用新增商品接口,正常的2.0的返回結(jié)果是:"item_add_response":"item":"iid":"699e0a75fcea3966d1d57fc8278c674b","created":"2009-10-22 15:08:42"。根據(jù)文檔的說明:添加商品成功的返回結(jié)構(gòu)體中包含的數(shù)據(jù)就是這樣。以此種返回結(jié)果舉例,整個(gè)消息體為空的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國雕卷草圈椅行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告
- 中國USB行業(yè)市場發(fā)展現(xiàn)狀及投資戰(zhàn)略咨詢報(bào)告
- 2025年中國軟床行業(yè)市場深度分析及投資規(guī)劃建議報(bào)告
- 中國光伏硅片市場深度調(diào)查分析及投資前景研究預(yù)測報(bào)告
- 2025年中國豆制品市場供需格局及未來發(fā)展趨勢報(bào)告
- 醋酸氯地孕酮項(xiàng)目投資可行性研究分析報(bào)告(2024-2030版)
- 2025年生物可降解塑料項(xiàng)目申請報(bào)告
- 2025年煤焦產(chǎn)品項(xiàng)目立項(xiàng)申請報(bào)告
- 企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化評分
- 遙感技術(shù)應(yīng)用農(nóng)村農(nóng)業(yè)規(guī)劃協(xié)議
- 聚磷腈功能高分子材料的合成及應(yīng)用
- 中國鐵路總公司《鐵路技術(shù)管理規(guī)程》(高速鐵路部分)2014年7月
- 鈣加維生素Dppt課件(PPT 14頁)
- TRD深基坑止水帷幕施工方案(22頁)
- FZ∕T 63013-2021 滌綸長絲織帶
- 八少八素初試甄別試題
- 哈薩克斯坦共和國有限責(zé)任公司和補(bǔ)充責(zé)任公司法
- 企業(yè)組織架構(gòu)圖模板
- 藏醫(yī)院制劑中心建設(shè)項(xiàng)目建議書寫作模板-定制
- 鋼結(jié)構(gòu)舞臺施工方案
- 軸類零件加工ppt課件
評論
0/150
提交評論