fastapi: renamed get doc

This commit is contained in:
2026-01-19 21:24:10 +03:30
parent 7067c77714
commit 2ee6a1aba3

View File

@@ -0,0 +1,169 @@
# FastAPI GET Endpoints and JSON Responses
This document demonstrates how to define multiple **GET endpoints** in FastAPI, return JSON responses, and use **path parameters** to retrieve specific data from an in-memory dataset.
---
## Example Application
Create or update `main.py` with the following content:
```python
from fastapi import FastAPI
app = FastAPI()
users = [
{"name": "abbas", "age": 20},
{"name": "mmd", "age": 37},
{"name": "asghar", "age": 19},
]
@app.get("/")
def root_dir():
return {"message": "API is working"}
@app.get("/users")
def get_users():
return users
@app.get("/user/{name_input}")
def get_user_by_name(name_input: str):
for item in users:
if item["name"] == name_input:
return {"information": item}
return {"message": "User not found"}
```
---
## Code Overview
### Application Initialization
```python
app = FastAPI()
```
Initializes the FastAPI application instance.
---
### In-Memory Data Store
```python
users = [
{"name": "abbas", "age": 20},
{"name": "mmd", "age": 37},
{"name": "asghar", "age": 19},
]
```
* Simulates a database using a Python list
* Each user is represented as a JSON-compatible dictionary
* Suitable for development and testing purposes
---
## Defined Endpoints
### Root Endpoint
```http
GET /
```
**Response:**
```json
{
"message": "API is working"
}
```
Used as a health check or readiness probe.
---
### Get All Users
```http
GET /users
```
**Response:**
```json
[
{"name": "abbas", "age": 20},
{"name": "mmd", "age": 37},
{"name": "asghar", "age": 19}
]
```
Returns the full list of users as JSON.
---
### Get User by Name (Path Parameter)
```http
GET /user/{name_input}
```
**Example Request:**
```http
GET /user/abbas
```
**Successful Response:**
```json
{
"information": {
"name": "abbas",
"age": 20
}
}
```
**Failure Response:**
```json
{
"message": "User not found"
}
```
---
## Path Parameters
* `name_input` is a dynamic path parameter
* Automatically validated and converted to `str` by FastAPI
* Used to filter data at runtime
---
## Running the Application
Use `uvicorn` to start the service:
```bash
uvicorn main:app --reload
```
---
## Best Practices
* Use structured JSON responses (`key: value`) instead of tuples
* Validate user input when moving beyond in-memory data
* Replace in-memory storage with a database for production
* Use proper HTTP status codes (`404`, `200`) in real-world APIs
* Separate routing, models, and business logic as the project grows