Sobes.tech
Junior — Senior

Optimization and refactoring of FastAPI service

livecode

Task condition

Refactor the provided FastAPI code, identifying and fixing potential issues. The application implements an endpoint to retrieve a list of likes, making an external HTTP request.


from uuid import UUID
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import requests

app = FastAPI()

class Like(BaseModel):
    id: UUID
    publication_id: UUID

def fetch_likes(size: int, offset: int, extra_params: dict = {}):
    response = requests.get('http://example.com/slow-request', params={'size': size, 'offset': offset, **extra_params})
    if response.status_code == 200:
        return response.json()
    else:
        raise HTTPException(status_code=response.status_code, detail="Failed to fetch data")

@app.post("/get-likes-list")
async def get_likes_list(size: int, offset: int):
    return fetch_likes(size, offset)

``