Programming foundations
Build and consume REST APIs
Design and ship HTTP APIs (FastAPI/Flask/Express), call third-party APIs, handle auth, errors and rate limits.
~20 focused hours·beginner
Tools: FastAPI, Pydantic, Uvicorn, requests/httpx, OpenAPI/Swagger, JWT/OAuth2
Market relevance — share of job ads asking for this
What employers mean
You should be able to…
- Design REST endpoints (routes, status codes, pagination) for a resource like documents or chat sessions
- Validate request/response bodies with Pydantic models instead of raw dicts
- Call a third-party API (payment gateway, LLM provider) and handle timeouts, retries and rate limits
- Add authentication (API key or OAuth2/JWT) to protect endpoints
- Auto-generate and read OpenAPI/Swagger docs for an API you built or consumed
- Version an API (v1/v2) without breaking existing clients
- Write integration tests against a running API using a test client
Needs first: Write production-quality Python for AI work
Learn — free, link-checked
The few resources that matter
Read · beginner · 120 min · fastapi.tiangolo.com
FastAPI — User Guide / Tutorial
The official, example-driven walkthrough from hello-world to a typed, validated, auto-documented API — the framework Indian AI job posts name most. — FastAPI (tiangolo)
Watch · beginner · 120 min · youtube.com
Python API Development - Comprehensive Course for Beginners
A full build-along (FastAPI + Postgres) showing how routing, models and a database fit together end to end, not just isolated snippets. — freeCodeCamp.org
Read · intermediate · 35 min · owasp.org
OWASP API Security Project
API-specific risks (broken object auth, excessive data exposure) that generic web security lists miss — directly relevant to LLM API wrappers. — OWASP
Read · intermediate · 45 min · fastapi.tiangolo.com
FastAPI — Security (OAuth2, JWT)
Shows how to add real OAuth2/JWT auth to an API — the exact gap between a toy endpoint and one that's safe to ship. — FastAPI (tiangolo)
Practice
Hindi Support-Ticket Summarizer API
Build a FastAPI service with endpoints to submit a Hindi/Hinglish support ticket, fetch its auto-generated English summary and priority, and list tickets with pagination. Validate all payloads with Pydantic, protect write endpoints with an API key, and add OpenAPI docs. Deploy locally with Uvicorn and write a Postman/httpx-based integration test suite.
Done when
- GET /docs renders working OpenAPI documentation with example requests
- POST /tickets rejects malformed payloads with a 422 and a clear error message
- GET /tickets supports limit/offset pagination and returns correct total counts
- Protected endpoints return 401 without a valid API key, verified by an automated test
Prove it
Evidence a recruiter can check
- Public GitHub repo with README, a live or reproducible /docs endpoint, and example curl requests
- Postman collection or pytest+httpx test file demonstrating the endpoints work end to end
- A short note on one design decision (e.g. why you chose PATCH over PUT, or how you handled rate limits)
Interview
Questions you'll get asked
- How would you design an endpoint to upload and process a large PDF asynchronously?
- What's the difference between PUT and PATCH, and when do you use each?
- How do you validate that a request body matches an expected schema in FastAPI?
- How would you handle a third-party API that rate-limits you at 60 requests/minute?
- Walk me through how you'd add pagination to a `/documents` list endpoint with 100k rows.
- How do you version an API without breaking mobile clients still on v1?
- What status code would you return if an LLM call times out, and why?