"""Server-side example using Python's standard library; makes one request without retries.""" import json import os import urllib.error import urllib.parse import urllib.request class NoRedirect(urllib.request.HTTPRedirectHandler): def redirect_request(self, req, fp, code, msg, headers, newurl): return None # Do not forward credentials to an unexpected destination. def track_package(tracking_number, api_key=None, authorization=None, opener=None): if not isinstance(tracking_number, str) or not tracking_number.strip(): raise ValueError("A tracking number string is required.") api_key = api_key or os.environ.get("RAPIDAPI_KEY") if not api_key: raise ValueError("RAPIDAPI_KEY is required.") authorization = authorization or os.environ.get("TRACKING_API_AUTHORIZATION") query = urllib.parse.urlencode({"trackingNumber": tracking_number.strip()}) url = "https://trackingpackage.p.rapidapi.com/TrackingPackage?" + query headers = {"X-RapidAPI-Key": api_key, "X-RapidAPI-Host": "trackingpackage.p.rapidapi.com", "Accept": "application/json"} if authorization: headers["Authorization"] = authorization request = urllib.request.Request(url, headers=headers, method="GET") client = opener or urllib.request.build_opener(NoRedirect()) try: with client.open(request, timeout=15) as response: content_type = response.headers.get_content_type() if content_type != "application/json" and not content_type.endswith("+json"): raise ValueError("Expected a JSON tracking response.") try: data = json.load(response) except (ValueError, UnicodeError): raise ValueError("Invalid JSON tracking response.") from None except urllib.error.HTTPError as error: raise RuntimeError("Tracking request failed (HTTP %s)." % error.code) from None except (urllib.error.URLError, TimeoutError): raise RuntimeError("Tracking request timed out or failed at the network layer.") from None if not isinstance(data, dict) or not isinstance(data.get("TrackingNumber"), str) or not isinstance(data.get("Status"), str) or not isinstance(data.get("Delivered"), bool): raise ValueError("Unexpected tracking response shape.") if data.get("TrackingDetails") is not None and not isinstance(data["TrackingDetails"], list): raise ValueError("Unexpected tracking event list.") return data if __name__ == "__main__": try: track_package(os.environ.get("TRACKING_NUMBER")) print("Tracking response received and validated.") except (ValueError, RuntimeError) as error: print(str(error)) # Do not print raw responses, shipment numbers, or API keys. raise SystemExit(1)