diff --git a/endpoints/manner.get.py b/endpoints/manner.get.py new file mode 100644 index 0000000..7aa758f --- /dev/null +++ b/endpoints/manner.get.py @@ -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. \ No newline at end of file