Update code in endpoints/boy.get.py
This commit is contained in:
parent
6efb8d7607
commit
6bc9d4f782
57
endpoints/boy.get.py
Normal file
57
endpoints/boy.get.py
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
Sure, here's an example of a FastAPI endpoint that returns a list of books from a database using SQLAlchemy and Pydantic:
|
||||||
|
|
||||||
|
```python
|
||||||
|
from typing import List
|
||||||
|
from fastapi import APIRouter, Depends
|
||||||
|
from sqlalchemy.orm import Session
|
||||||
|
from database import SessionLocal
|
||||||
|
import models
|
||||||
|
import schemas
|
||||||
|
|
||||||
|
router = APIRouter()
|
||||||
|
|
||||||
|
# Dependency
|
||||||
|
def get_db():
|
||||||
|
db = SessionLocal()
|
||||||
|
try:
|
||||||
|
yield db
|
||||||
|
finally:
|
||||||
|
db.close()
|
||||||
|
|
||||||
|
# SQLAlchemy model
|
||||||
|
class Book(models.Base):
|
||||||
|
__tablename__ = "books"
|
||||||
|
|
||||||
|
id = models.Column(models.Integer, primary_key=True, index=True)
|
||||||
|
title = models.Column(models.String, index=True)
|
||||||
|
author = models.Column(models.String, index=True)
|
||||||
|
description = models.Column(models.String, index=True)
|
||||||
|
|
||||||
|
# Pydantic schema
|
||||||
|
class BookSchema(schemas.BaseModel):
|
||||||
|
id: int
|
||||||
|
title: str
|
||||||
|
author: str
|
||||||
|
description: str
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
orm_mode = True
|
||||||
|
|
||||||
|
@router.get("/books", response_model=List[BookSchema])
|
||||||
|
def get_books(db: Session = Depends(get_db)):
|
||||||
|
books = db.query(Book).all()
|
||||||
|
return books
|
||||||
|
```
|
||||||
|
|
||||||
|
Here's a breakdown of the code:
|
||||||
|
|
||||||
|
1. We import the necessary modules and classes from FastAPI, SQLAlchemy, and Pydantic.
|
||||||
|
2. We define a SQLAlchemy model `Book` with columns for `id`, `title`, `author`, and `description`.
|
||||||
|
3. We define a Pydantic schema `BookSchema` that maps to the `Book` model.
|
||||||
|
4. We create a dependency function `get_db` that establishes a database session and yields it to the endpoint function.
|
||||||
|
5. We define the `GET` endpoint `/books` that retrieves all books from the database using `db.query(Book).all()`.
|
||||||
|
6. The `response_model` parameter is set to `List[BookSchema]`, which tells FastAPI to use the `BookSchema` to serialize the response data.
|
||||||
|
|
||||||
|
To use this endpoint, you would need to have a running database with a table named `books` and the corresponding columns. When you send a `GET` request to `/books`, the endpoint will retrieve all books from the database and return them as a list of JSON objects.
|
||||||
|
|
||||||
|
Note that this is a basic example, and you may want to add error handling, pagination, filtering, and other features depending on your requirements.
|
Loading…
x
Reference in New Issue
Block a user