Sobes.tech
Middle

json'u içe aktar fastapi'den APIRouter, Depends'i içe aktar sqlalchemy'den select'i içe aktar to sqlalchemy.ext.asyncio'dan AsyncSession'u içe aktar redis'den Redis'i içe aktar src.infrastructure.storage.db.models.product'dan ProductDB'yi içe aktar destek src.infrastructure.storage.db.models.factory'den FactoryDB'yi içe aktar router = APIRouter() redis = Redis.from_url("redis://localhost:6379/0") @router.get("/products/serials") async def get_serials_by_ids( ids: str, db: AsyncSession = Depends(get_db), ): product_ids = [int(x) for x in ids.split(",")] items = [] for product_id in product_ids: raw = redis.get(f"serial:{product_id}") if raw: items.append(json.loads(raw)) continue product = await db.get(ProductDB, product_id) factory = ( await db.execute(select(FactoryDB).where(FactoryDB.code == product.factory)) ).scalar_one() item = { "id": product.id, "serial_number": product.serial_number, "factory_number": factory.number, } redis.set(f"serial:{product_id}", json.dumps(item)) items.append(item) await db.commit() return items