Асинхронные запросы с APIRouter или httpx.AsyncClientPython

Программы на Python
Ответить
Anonymous
 Асинхронные запросы с APIRouter или httpx.AsyncClient

Сообщение Anonymous »

Я работаю над частично разработанным проектом FastAPI. Большинство клиентских запросов в этом проекте используют встроенный APIRouter FastAPI с асинхронными функциями для клиентских запросов. Они выглядят следующим образом:

Код: Выделить всё

from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession

router = APIRouter(prefix="/users", tags=["users"])

@router.get("/", response_model=list[UserResponse])
async def get_all_users(skip: int = 0, limit: int = 10, db: AsyncSession = Depends(get_db)):
return await service_get_users(db, skip=skip, limit=limit)
Однако одна существующая служба использует httpx для выполнения асинхронных запросов, например:

Код: Выделить всё

import httpx

async def trigger_dag(dag_id: str):
async with httpx.AsyncClient() as client:
response = await client.post(url, headers=headers, json=payload, auth=(username, password))
После небольшого изучения у меня возникли еще вопросы. Я обнаружил, что httpx поддерживает асинхронные запросы к внешним API, но мне неясно, чем он отличается от APIRouter.
  • Поддерживает ли APIRouter асинхронные запросы к внешним API? API?
  • Каковы основные различия между APIRouter и httpx и когда следует использовать один из них, а не другой?
  • Есть ли плюсы и минусы при выборе одного из них?


Подробнее здесь: https://stackoverflow.com/questions/792 ... syncclient
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»