精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

調試別人的API,一般有哪些步驟?

譯文 精選
開發 測試
調試是我們進行定位并修復由單個API調用或一系列調用引發的問題。通常,我們可以調試我們不能完全把握的代碼,從而可以清晰地了解該部分代碼。我們在使用API時,除了遇到意想不到的異常外,還有可能在解析輸出或傳遞變量時出錯。

當我們使用了一些由別人實現的API接口時,該如何進行調試呢?當我們使用的API返回一些意想不到錯誤時,該怎么辦呢?這個問題可能是由于用戶輸入或者API本身,或者其他完全無關的內容等引起的。調試是我們進行定位并修復由單個API調用或一系列調用引發的問題。通常,我們可以調試我們不能完全把握的代碼,從而可以清晰地了解該部分代碼。我們在使用API時,除了遇到意想不到的異常外,還有可能在解析輸出或傳遞變量時出錯。

在本篇文章中,我們將深入研究快速地、可靠地調試REST API的方法和原則。

API debugging到底是什么

調試的目的是為了梳理清楚輸入和輸出之間的關系。通常都是基于可觀察到的現象來定位問題的根本原因。但當我們同時使用了不同服務商提供的API或者不同的API資源時,就可能會加大我們調試的難度。

理想情況下,我們會使用一個穩定的測試和監控系統,當問題出現時,這個系統可以提醒我們,并且幫我們初步確定出現該問題的原因。同時即使您沒有這種高級別的監控系統時,一些常見的有效的方法也可以幫助我們減少查找和修復問題所需的時間和精力。

下面列是一種定位問題的方法:

  • 先定位因為引起該問題的API
  • 檢查狀態信息
  • 更深入地檢查數據

接下來,我將會使用Postman來演示這種調試方法,但這種方法同樣可以適用于其他的開發工具的。

1、定位API

第一步就是定位出引起問題的API,并確定該問題確實是因為該API的調用,或者API本身,或API內部處理過程,或者是完全無關的東西導致的。重新復現問題并深入定位該問題,從而方便我們進一步分析問題,同時我們還可以調整傳遞給該API的輸入參數,并分析輸出信息。如果通過該方法依然無法辨別輸入和輸出之間的關系,那么問題可能不是出在API調用本身,而是其他原因導致的,比如第三方服務或基礎架構的更改導致了這種意想不到的行為。

Figure 1 復現問題,從而進行深入分析

2、檢測狀態碼

當我們通過API進行交互時,服務器會返回一個HTTP狀態碼,該代碼表示我們API請求的狀態。這個狀態碼和錯誤消息由API提供者確定,因此它們的意義和準確性各不相同。但是大多數API提供方通常會使用狀態代碼的第一個數字來反應響應類,如400表示客戶端有問題,此時更新請求可以解決該問題;500表示服務器有問題,此時我們除了驗證正在訪問適當的資源并進行檢查之外,沒有什么可以做的了,除非是API的實現方。

服務器返回可靠的狀態消息是我們追蹤錯誤來源的第一線索。以下是一些常見的客戶端錯誤代碼,再此處我分別說明了對應的解決方法:

400表示請求參數錯誤,我們可以查找是否存在語法錯誤,如輸入錯誤或畸形的JSON正文。

  • 401表示未經授權,我們需要確實是否有訪問對應目標資源的有效認證憑證,同時確認沒有語法問題。
  • 403表示服務器拒絕請求,此時可以檢查我們具有的權限和范圍,以確保能被授權訪問資源。
  • 418表示我是茶壺(I 'm a Teapot),可能表示請求是提供者不想處理的請求,例如自動查詢。
  • 429表示太多的請求,此時我們可以檢查文檔,以便了解使用頻率限制或著稍后再試。

Figure 2 用4開頭的錯誤碼來說明客戶端存在異常

3、深入分析

下一步是深入挖掘并驗證我們的假設。我們可以驗證是否正確地發送了每個請求,并正確地解析了每個響應。當我們沿著API調用序列傳遞數據時,還可以驗證變量的定義和引用是否正確。

以下是處理HTTP api時常見的問題:

  • 畸形的JSON:新手在發送JSON時會犯一些常見的錯誤。在JSON字符串中,單引號無效,因此請確保將字符串和屬性名用雙引號括起來。此外,JSON不支持注釋,所以要么盡量簡化,要么根本不添加它們。
  • 序列化數據:REST api經常以JSON對象的形式存儲和發送數據。為了正確傳輸數據,請確保使用JSON.stringify()對數據進行編碼,并使用JSON.parse()對其進行解碼。此外,服務器可能要求您設置一個application/json類型的Content-Type頭。進一步檢查后,如果您看到像[object object]或Unexpected token這樣的值,這表明我們非法的進行了序列化和反序列化。
  • 類型轉換:在準備發送請求或解析響應時,可以將值從一種類型轉換為另一種類型。根據編程語言的不同,對字符串執行數學計算可能會導致失敗,但當我們將字符串轉換為數字時,就可以處理轉換后的數據了。
  • 提取信息:使用JSON.parse()反序列化JSON響應后,就可以使用點或括號符號訪問所有信息。如果您試圖訪問一個復雜結構中的深層嵌套信息,您可能需要一步一步地將其分解,以精確地引用該信息,并確保您不會試圖使用到一些未定義的東西中。
  • 身份驗證與授權:身份驗證是指驗證用戶的身份,而授權則確認用戶擁有訪問資源的權限。如果請求中包含了適當的授權頭,但仍然不能訪問資源,請仔細檢查與憑據相關的權限和作用域。
  • Content type頭:Content- type和Accept頭有助于在客戶端和服務器之間進行內容協商。Content-type請求頭告訴服務器,客戶端發送的信息類型。而Accept請求頭告訴服務器,客戶機可以理解什么類型的內容。一些api需要特定的請求頭,并且只處理特定的內容類型。

對于這些常見的錯誤,可以依靠語法高亮顯示、檢查器和其他檢查功能來幫我們來檢查。同時我們可以利用開發人員控制臺來查看應用程序的網絡調用和日志語句,從而可以根據其提供的輸入、輸出和從一個調用到另一個調用傳遞數據來幫助我們定位問題,例如,如果您有一個同步或異步調用序列,記錄關鍵結點的值或設置條件斷點來進一步快速查明問題所在。在整個調用執行過程中使用console.log()這樣的控制臺語句可以進一步驗證我們的假設解析輸出。

Figure 3 使用控制臺進行問題的定位

調整策略

許多調試策略有利于縮小問題的原因。這些策略大致可分為三類。

1、蠻力策略

如果您對系統的分析方法有限,這意味著您需要調整并記錄所有內容。在整個API調用序列的某些點上添加戰略日志語句可能會很有幫助。但是,大量的日志會降低性能,因為需要更多的時間來處理日志數據。

2、回溯策略

這種策略是指從第一次發現錯誤的地方向后移動,直到找到錯誤的根本原因。類似地,可以從顯示預期行為的API調用開始,然后逐步執行后續調用,直到找到錯誤。當您對可能導致問題的原因有合理的假設時,這種策略很有效,否則這種策略就不那么有效了。

3、逐個各個擊破

在復雜的系統中,將系統分解成更小的部分可能會讓我們更容易發現問題。二進制搜索就是這種策略的一個例子,在這種情況下,您可以在一個較長的調用序列中輸入一個日志語句或斷點,假如直到該斷點處時有沒有出現缺陷,則對調用的后半部分重復該過程,以此類推。另一種策略是使用模擬服務器來隔離被測試的系統。您可以依賴模擬響應來獲得外部依賴項,或者為您的場景提供一個起點。

保持調試的心態

一段時間后,專注于一個問題而沒有取得進展可能會對自己喪失定位問題的信心,因為此時我們已經沒有任何頭緒了。下面的策略可以幫助您獲得更有效的調試心態。

  • 橡皮鴨調試(Rubber duck debugging):向別人闡明問題和假設可能會迫使你靜下心來,明確地陳述你的假設,從而改變你自己的觀點。
  • 從集中模式切換到分散模式(Switch from a focused to diffused mode):完全切換到不同的活動,比如徒步旅行,會讓你的大腦進入一個不同的狀態。擴散學習模式是當你的大腦被動地建立新的聯系,并可能導致創造性的見解。這就是為什么你在洗澡的時候或者剛醒來的時候會有最好的想法的原因。

在調試時節省時間和精力

無論您是使用REST api的新手還是經驗豐富的老手,一致和有條理的調試方法可以節省時間和精力。您選擇的調試策略取決于系統的可觀察性。如果您的系統使用預定義的日志和堆棧跟蹤進行了廣泛的監視,那么您可以迅速發現問題,并可能立即發現錯誤。如果這些措施沒有到位,您可以簡化問題以減少搜索區域,并利用其中一些調試策略來定位根因。

原文鏈接:

https://stackoverflow.blog/2022/02/28/debugging-best-practices-for-rest-api-consumers/

責任編輯:薛彥澤 來源: 51CTO
相關推薦

2017-08-31 14:09:26

數據庫MySQLSQL優化

2020-04-26 17:04:18

Python代碼數據

2011-04-06 16:41:25

LCPPPPIPCP

2019-06-05 15:23:09

Redis緩存存儲

2022-04-02 10:52:33

Go開發面試

2009-11-27 13:46:19

VS2003無法調試

2020-06-09 08:09:07

機器學習統計學習無監督學習

2011-09-08 11:35:18

2010-10-08 14:23:08

MySQL中INSER

2021-05-07 22:11:56

寬帶手機運營商

2021-08-16 08:42:31

MySQL查詢數據庫

2021-08-19 09:16:29

MySQL數據庫優化器

2024-01-23 09:08:47

軟件架構REST

2012-06-27 09:29:49

程序員

2010-09-14 10:55:14

DIV CSS網頁制作

2013-01-20 21:55:24

移動策略

2018-01-08 15:07:15

java項目后臺

2023-07-27 08:34:57

軟件迭代管理

2022-03-28 13:21:00

云計算云原生混合云

2010-03-31 09:51:38

CentOS系統
點贊
收藏

51CTO技術棧公眾號

国产精品久久久久久久久久99| 亚洲精品720p| wwwwww欧美| 欧美一区二区黄片| 日韩在线观看一区二区| 日韩视频在线免费| 中文字幕精品视频在线| 影音成人av| 亚洲一区二区精品久久av| 欧洲精品码一区二区三区免费看| 亚洲最大成人av| 你懂的国产精品| 亚洲欧美999| www.久久com| 欧美日韩免费观看视频| 亚洲在线一区二区三区| 水蜜桃一区二区三区| 国产三级漂亮女教师| 久久精品麻豆| 欧美大片欧美激情性色a∨久久| 亚洲一区在线免费| 日韩视频在线观看一区| 97精品国产一区二区三区| 亚洲第一色在线| 一区二区三区四区毛片| 人人视频精品| 亚洲成人一区二区在线观看| 一区二区在线观看网站| 国产精品视频一区二区久久| 成人一区二区三区视频| 成人做爽爽免费视频| 大胸美女被爆操| 加勒比久久高清| 欧美一区二区视频观看视频 | 国产乱国产乱老熟300部视频| 成人欧美一区二区三区的电影| 成人黄色在线看| 成人久久一区二区| 日韩乱码一区二区三区| 亚洲大黄网站| 欧美精品成人在线| 青娱乐国产在线| 香蕉久久网站| 日韩中文字幕av| 69精品无码成人久久久久久| 巨大黑人极品videos精品| 婷婷六月综合网| 久艹视频在线免费观看| 久操av在线| 久久新电视剧免费观看| 好看的日韩精品视频在线| 后进极品白嫩翘臀在线视频| 国产盗摄一区二区三区| 91久久国产综合久久蜜月精品| 国产欧美一区二区三区视频在线观看| 男女男精品视频| 国产免费一区二区三区香蕉精| 亚洲av无码不卡| 一区二区影院| 乱亲女秽乱长久久久| 四虎永久免费在线| 欧美成人日韩| 久久久久久久一区二区| 国产 日韩 欧美 成人| 在线播放亚洲| 午夜精品视频在线| 久久久久久久极品| 肉色丝袜一区二区| 国产精品中文字幕在线| 一道本无吗一区| 黑人巨大精品欧美黑白配亚洲| 久久免费高清视频| 国产极品视频在线观看| 久久一级电影| www.亚洲成人| 免费一级肉体全黄毛片| 夜夜嗨av一区二区三区网站四季av| 91国产精品视频在线| 天堂а√在线中文在线新版 | 欧美一区二区三区免费视| 国产高清中文字幕| 麻豆久久久久久| 91九色蝌蚪成人| 香蕉视频成人在线| 国产在线精品一区二区夜色| 亚洲自拍偷拍区| 神马午夜电影一区二区三区在线观看 | jizzjizz欧美69巨大| 久久精品视频在线观看| 国产成年人免费视频| 日本色综合中文字幕| 91亚色免费| 欧美亚洲日本| 1024成人网| aa在线观看视频| 成人黄色免费网站| 亚洲第一天堂无码专区| 99久久99久久精品免费| 欧美日韩精品| 中文字幕在线成人| 欧美黄色免费观看| 久色成人在线| 久久久亚洲成人| www.国产com| 国产在线精品一区二区| 欧美日韩综合久久| 欧美日韩伦理片| 日韩美女精品在线| 国产a级一级片| 日韩成人在线看| 91精品国产欧美日韩| 捆绑裸体绳奴bdsm亚洲| 欧美wwwww| 青青在线视频一区二区三区| 精品国产999久久久免费| 久久美女高清视频| 国产九色porny| 婷婷激情成人| 国产亚洲欧美日韩美女| 日本在线小视频| 国产乱码精品一区二区三区av | 欧美日本不卡| 国产精品久久久久久影视| 日本美女一级视频| 亚洲精品国产视频| 午夜久久福利视频| 国产日产一区 | 国产又粗又猛视频免费| 大型av综合网站| 自拍视频国产精品| 久久婷五月综合| 日韩精品福利一区二区三区| 欧美日韩福利在线观看| 国产一级片免费在线观看| 波多野洁衣一区| 亚洲japanese制服美女| 瑟瑟视频在线| 欧美日韩国产一区二区三区地区| 精品无码人妻一区| 亚洲高清在线| 国产成人成网站在线播放青青| 毛片av在线| 欧美精品久久天天躁| 国产精品18在线| 久久精品国内一区二区三区| 亚洲视频在线二区| yw.尤物在线精品视频| 亚洲乱码国产乱码精品精| 精品成人av一区二区在线播放| 丰满少妇久久久久久久| 久久久久久亚洲精品不卡4k岛国 | 久久久在线免费观看| 国产高清免费在线观看| 亚洲综合999| 性欧美18—19sex性高清| 亚洲激情午夜| 免费一区二区三区| 原纱央莉成人av片| 国产午夜精品免费一区二区三区| 波多野结衣电影在线播放| 国产亚洲精品精华液| 最近中文字幕一区二区| 91麻豆精品国产91久久久平台| 国产精品爽黄69天堂a| 好操啊在线观看免费视频| 欧美一二三在线| 欧美日韩中文视频| 久久久777精品电影网影网| 一本一本a久久| 一级欧美视频| 亚洲欧美国产精品专区久久| 国产女主播喷水视频在线观看| 国产调教视频一区| 亚洲天堂av一区二区| 牛牛国产精品| 久久久福利视频| 欧美日韩激情电影| 久久精品99无色码中文字幕 | 丁香激情综合国产| 欧美日韩国产精品激情在线播放| 欧美女优在线视频| 九九热这里只有精品免费看| www日本高清视频| 无码av中文一区二区三区桃花岛| 国产成人无码精品久久二区三| 久久成人av少妇免费| www.国产在线视频| 精品国内自产拍在线观看视频| 91情侣偷在线精品国产| 国产盗摄——sm在线视频| 一区二区三区回区在观看免费视频| 在线观看国产黄| 亚洲国产精品一区二区www| av电影网站在线观看| 国产一区二区久久| 激情六月丁香婷婷| 欧美二区视频| 日韩精品伦理第一区| 98视频精品全部国产| 国产99视频精品免视看7| 中文在线观看免费| 亚洲少妇激情视频| 肥臀熟女一区二区三区| 欧美网站一区二区| 色婷婷av国产精品| 亚洲精品国产成人久久av盗摄 | 茄子视频成人在线| 中文字幕资源网在线观看| 亚洲人成在线观看| 欧美熟妇另类久久久久久不卡| 欧美日韩一区中文字幕| 精品无码在线观看| 国产91精品露脸国语对白| 国产情侣av自拍| 亚洲精选在线| 日本福利视频在线观看| 日韩久久综合| 国产欧美一区二区三区久久人妖 | 国产精品999999| 美女网站视频在线| 久久九九免费视频| jizz在线观看视频| 亚洲美女视频网| 熟妇高潮一区二区高潮| 欧美一区二区观看视频| 伊人亚洲综合网| 亚洲欧洲三级电影| 美女100%无挡| 91亚洲国产成人精品一区二三 | 99re亚洲国产精品| 欧美日韩一区二区视频在线| 成人性生活免费看| 日韩高清一区| 成人黄色生活片| 国产亚洲欧美日韩精品一区二区三区 | 亚洲a一级视频| 日韩黄色三级| 国产97在线观看| 欧美日韩电影免费看| 欧美在线一区二区三区四| cao在线视频| 午夜精品久久久久久久99黑人 | 午夜免费视频网站| 激情伊人五月天久久综合| 天天干天天av| 国产综合色视频| 久久人人爽人人片| 韩国一区二区三区| 992tv人人草| 国产麻豆精品95视频| 尤物网站在线看| 国产激情91久久精品导航| 农村末发育av片一区二区| 成人午夜看片网址| 亚洲精品女人久久久| 久久新电视剧免费观看| 亚洲黄色免费视频| 国产精品污www在线观看| 男女男精品视频网站| 国产精品久久久久久久久免费桃花| 国产精品情侣呻吟对白视频| 国产精品家庭影院| 91麻豆精品成人一区二区| 有坂深雪av一区二区精品| 福利一区二区三区四区| 精品成人国产在线观看男人呻吟| 在线观看日韩中文字幕| 在线免费观看日本一区| 国产亲伦免费视频播放| 日韩精品一区二区三区视频 | 最近的2019中文字幕免费一页| 无遮挡的视频在线观看| 欧美成人免费全部观看天天性色| 国产精品偷拍| 欧美中文在线免费| 久久久精品一区二区毛片免费看| 91传媒视频在线观看| 六月丁香久久丫| 性欧美精品一区二区三区在线播放| 91成人精品视频| 国产在线精品91| 奇米888四色在线精品| 三上悠亚 电影| 久久综合成人精品亚洲另类欧美| 日本不卡一区视频| 亚洲国产精品一区二区www在线| 区一区二在线观看| 欧美一区二区三区视频在线| 日韩a在线看| 久久综合久久八八| 电影一区二区三区| 亚洲自拍偷拍视频| 亚洲免费毛片| 在线观看av的网址| 天堂va蜜桃一区二区三区漫画版| 日本网站在线看| 国产欧美精品一区aⅴ影院 | 亚洲一区二区三区视频| 天海翼精品一区二区三区| 先锋影音一区二区三区| 亚洲第一黄色| 日韩成人精品视频在线观看| 99re视频精品| 国产黄在线免费观看| 日韩欧美国产激情| 手机在线免费看片| 一本色道久久综合精品竹菊| xxxx18国产| 中文字幕最新精品| 亚洲性受xxx喷奶水| 99www免费人成精品| 欧美日韩国产免费观看视频| 国产在线播放观看| 国产精品一区专区| 懂色av粉嫩av浪潮av| 欧美性极品xxxx娇小| 亚洲欧美激情另类| 超碰91人人草人人干| 国产成人免费9x9x人网站视频| 国产日韩欧美综合精品| 日本精品影院| 99热这里只有精品免费| 美女免费视频一区二区| 国产ts在线播放| 精品福利一区二区| 亚洲AV无码精品自拍| 精品久久久av| 国产精品美女午夜爽爽| 欧美一区二区在线视频观看| 亚洲影音一区| 你懂得在线视频| 亚洲国产一区视频| 性生交生活影碟片| 九九热99久久久国产盗摄| 91精品福利观看| 一区二区三区欧美成人| 毛片av中文字幕一区二区| 蜜桃av乱码一区二区三区| 色系网站成人免费| 欧美在线观看在线观看| 日韩av成人在线| 国产成人久久| 国产男女激情视频| 国产亚洲一本大道中文在线| 国产一卡二卡三卡| 一二美女精品欧洲| 成人免费一区| 在线观看福利一区| 国产综合久久久久久久久久久久| 亚洲av无一区二区三区| 69堂精品视频| 成人毛片av在线| caoporn国产精品免费公开| 国产精品a久久久久| 亚洲成a人无码| 欧美日韩国产丝袜美女| 男女视频在线观看| 国产精品嫩草影院久久久| 日韩欧美中字| 青青草原播放器| 亚洲一区av在线| 三级在线观看| 国产精品a久久久久久| 欧美gvvideo网站| 国产精品19p| 欧美日韩一区二区免费视频| 久久久久久久久亚洲精品| 国产精品美女久久久久久免费| 日韩在线观看一区| 国模大尺度视频| 精品电影在线观看| 在线免费看黄| 99re国产| 久久精品女人| 精品自拍偷拍视频| 亚洲高清久久久久久| 97久久香蕉国产线看观看| 亚洲精品在线观看免费| 国产寡妇亲子伦一区二区| 中文字幕日韩一级| 中文字幕在线国产精品| 亚洲福利合集| 国产综合免费视频| 亚洲色图视频网站| 一区二区三区麻豆| 久久久精品在线| 精品伊人久久久| 超碰在线公开97| 亚洲电影中文字幕在线观看| 成在在线免费视频| 成人av电影免费| 日韩精品免费视频人成| 欧美成人精品欧美一级私黄| 亚洲欧美中文字幕在线一区| 成人豆花视频| 亚洲中文字幕无码专区| √…a在线天堂一区| 亚洲欧美自偷自拍| 999精品视频一区二区三区| 视频一区欧美精品|