Update code in endpoints/manner.get.py

This commit is contained in:
Backend IM Bot 2025-03-25 15:07:36 +01:00
parent 7fb1530ee1
commit a1423bd442

50
endpoints/manner.get.py Normal file
View File

@ -0,0 +1,50 @@
Here's an example of a FastAPI endpoint that returns a list of books from the database:
```python
# models/book.py
from sqlalchemy import Column, Integer, String
from core.database import Base
class Config:
orm_mode = True
# endpoints/books.py
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from core.database import get_db
from models.book import Book
from schemas.book import BookSchema
from typing import List
router = APIRouter()
@router.get("/books", response_model=List[BookSchema])
Here's a breakdown of the code:
1. `models/book.py`: Defines the SQLAlchemy model `Book` with columns for `id`, `title`, `author`, and `description`.
2. `schemas/book.py`: Defines the Pydantic schema `BookSchema` for data validation and serialization/deserialization.
3. `endpoints/books.py`:
- Imports necessary dependencies and models.
- Defines a `router` instance.
- The `get_books` function is decorated with `@router.get("/books", response_model=List[BookSchema])`, which specifies the endpoint path and the response model.
- Inside the `get_books` function, it retrieves all books from the database using `db.query(Book).all()`.
- The retrieved books are returned as the response.
To use this endpoint, you would need to include the `router` in your main FastAPI application:
```python
# main.py
from fastapi import FastAPI
from endpoints.books import router as book_router
from app.api.models.manner_model import *
from app.api.schemas.manner_schema import *
from app.api.dependencies.manner_deps import *
app = FastAPI()
app.include_router(book_router)
```
Then, you can access the endpoint at `/books` using a GET request. The response will be a JSON array containing the list of books from the database.
Note: Make sure to replace the import paths (`core.database`, `models.book`, `schemas.book`) with the correct paths based on your project structure.