Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
19 views

FastAPI_Interview_QA_Full

FastAPI is a modern, high-performance web framework for building APIs with Python, offering features like automatic documentation generation, data validation with Pydantic, and support for asynchronous programming. It allows for easy route definition, request validation, and dependency injection, making it suitable for building robust applications. FastAPI can be deployed using Uvicorn or Gunicorn and supports various functionalities such as JWT authentication, middleware, and CORS handling.

Uploaded by

V.NagaRamaraju
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

FastAPI_Interview_QA_Full

FastAPI is a modern, high-performance web framework for building APIs with Python, offering features like automatic documentation generation, data validation with Pydantic, and support for asynchronous programming. It allows for easy route definition, request validation, and dependency injection, making it suitable for building robust applications. FastAPI can be deployed using Uvicorn or Gunicorn and supports various functionalities such as JWT authentication, middleware, and CORS handling.

Uploaded by

V.NagaRamaraju
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

FastAPI Interview Questions & Answers (Full Set)

Q: What is FastAPI? How does it differ from frameworks like Flask and Django?

A: FastAPI is a modern, high-performance web framework for building APIs with Python 3.7+ based
on standard type hints. It is faster than Flask and Django, supports asynchronous programming
(async/await), and automatically generates validation and interactive API docs.

Q: What are the main features of FastAPI?

A: Fast to run, automatic OpenAPI & JSON Schema generation, data validation with Pydantic,
dependency injection system, asynchronous programming support, and easy database integration.

Q: How do you install FastAPI and run a simple application?

A: Install using 'pip install fastapi uvicorn'. Define a FastAPI instance and routes, then run with
'uvicorn main:app --reload'.

Q: How do you define a route/endpoint in FastAPI?

A: Use route decorators like @app.get(), @app.post() above your function definitions.

Q: Explain how automatic OpenAPI (Swagger) docs are generated.

A: FastAPI uses the OpenAPI standard to automatically generate interactive documentation at


'/docs' (Swagger UI) and '/redoc' (Redoc).

Q: How do you handle path and query parameters?

A: By including them in function parameters - path parameters directly and query parameters as
optional with default values.

Q: How to handle form data and file uploads?

A: Use 'Form' and 'UploadFile' from fastapi, passing them as dependencies in your endpoint
functions.

Q: How does FastAPI handle request validation?

A: It uses Pydantic models and Python type hints to perform automatic request validation and raise
errors if inputs are invalid.

Q: What are Pydantic models? How are they used in FastAPI?


A: Pydantic models are Python classes used for data validation and serialization. In FastAPI, they're
used to define request and response schemas.

Q: How to handle JSON request bodies?

A: Define a Pydantic model and use it as a parameter in your route function.

Q: How to customize response status codes?

A: Set the 'status_code' parameter in your route decorator.

Q: What is ResponseModel and how to use it?

A: A parameter to route decorators to specify the response schema using a Pydantic model.

Q: How to send custom response headers?

A: Use 'JSONResponse' from fastapi.responses and pass custom headers.

Q: How to implement response caching?

A: FastAPI doesn't have built-in caching; use third-party libraries like 'FastAPI-Caching' or external
tools like Redis.

Q: Explain FastAPI's dependency injection.

A: FastAPI uses 'Depends' to declare dependencies which can be automatically resolved and
injected into your routes.

Q: How to share common logic (like DB connections)?

A: Define a dependency function that yields the connection, and inject it into your routes using
'Depends'.

Q: How to implement JWT authentication?

A: Use libraries like 'python-jose' or 'fastapi-jwt-auth' to encode, decode tokens and secure
endpoints via dependency injection.

Q: What are security schemes in FastAPI?

A: Security schemes like OAuth2PasswordBearer are utilities that help define and secure
authentication flows.

Q: How to secure routes?


A: Use dependencies like 'Depends(oauth2_scheme)' in your routes to restrict access.

Q: What is middleware?

A: Middleware is a function that runs before and/or after each request to handle cross-cutting
concerns.

Q: Use case for middleware?

A: Logging, CORS, performance monitoring, error handling.

Q: How does FastAPI support async?

A: Built on Starlette, FastAPI supports async/await for non-blocking asynchronous programming.

Q: Difference between async def and def?

A: 'async def' is non-blocking, 'def' is blocking.

Q: Can you mix them?

A: Yes, FastAPI supports both async and regular functions.

Q: How to test a FastAPI app?

A: Use 'TestClient' from fastapi.testclient for integration tests.

Q: What is TestClient?

A: A testing utility that wraps your FastAPI app and lets you test it like an HTTP client.

Q: How to connect a database?

A: Use libraries like SQLAlchemy to manage ORM-based database connections.

Q: Explain SQLAlchemy integration.

A: Create an engine, session, and models. Manage DB sessions via dependency injection.

Q: How to implement database sessions as dependency?

A: Define a 'get_db' function that yields a session and inject it using 'Depends'.

Q: How to deploy a FastAPI app?

A: Use Uvicorn or Gunicorn with Uvicorn workers behind a reverse proxy like Nginx or deploy in
Docker.
Q: Difference between Uvicorn and Gunicorn?

A: Uvicorn is an ASGI server, Gunicorn is a WSGI server. Use Uvicorn workers inside Gunicorn for
async apps.

Q: How to serve behind Nginx?

A: Proxy requests from Nginx to your Uvicorn server via reverse proxy configuration.

Q: Background tasks example?

A: Use 'BackgroundTasks' from fastapi and add tasks with 'add_task' method.

Q: WebSockets example?

A: Use '@app.websocket' decorator, accept, send and close WebSocket connections


asynchronously.

Q: How to handle CORS?

A: Add 'CORSMiddleware' to your FastAPI app with allowed origins, methods, and headers.

Q: How does FastAPI handle exception handling?

A: Use 'HTTPException' or add custom exception handlers using 'add_exception_handler'.

Q: How would you implement pagination?

A: Use query parameters like 'limit' and 'offset' to control the number of returned results.

You might also like