如何在 Python 中调试和测试 API 客户端的重试逻辑

how to debug and test retry logic of API client in Python

我刚刚基于“请求”库为 Instagram 开发了原始 API 客户端。下一个目标是实现 400+ 和 500+ 错误代码的重试逻辑。有很多示例如何执行此操作,但我想知道如何测试解决方案。 它应该是某个函数随机决定是将请求传递给 API 门户还是传递给 return 某些错误代码? 或者地球上有什么地方可以用来练习不可靠的API? 或者某些服务器故意生成错误?

您可以使用此启动脚本创建一个小型 HTTP 服务器:

from http.server import BaseHTTPRequestHandler, HTTPServer
hostName = "localhost"
serverPort = 8080

class MyServer(BaseHTTPRequestHandler):
    def do_GET(self):
        code = self.path.split('/')[1]

        # do stuff here
        self.send_response(int(code))
        self.send_header("Content-type", "text/html")
        self.end_headers()

if __name__ == '__main__':
    webServer = HTTPServer((hostName, serverPort), MyServer)
    try:
        webServer.serve_forever()
    except KeyboardInterrupt:
        pass
    webServer.server_close()

使用方法:

import requests

r = requests.get('http://localhost:8080/403')
print(r.status_code)

# Output
403