API Error Handling: HTTP Status Codes, Error Bodies, and Retry Logic