from fastapi import FastAPI, HTTPException, status from data.dataframe import df from pydantic import BaseModel app = FastAPI() @app.get("/") def root(): return {"message": "Welcome to FastAPI"} @app.get("/continents") def get_column_names(): return {"continents":df["Continent"].unique().tolist()} @app.get("/{continent}") def get_continent(continent: str): # return "hi" return {"continents": df[df["Continent"] == continent].to_json()} @app.get("/max-populations/{continent}") def get_max_population_by_continent(continent: str): continent = continent.title() if continent in df["Continent"].unique().tolist(): filter_by_continent = df[df["Continent"] == continent] max_population_by_continent = filter_by_continent["Population"].max() return {"max_population": f"{max_population_by_continent}"} raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail={"message": "Invalid Attribute!"}) @app.get("/min-populations/{continent}") def get_min_population_by_continent(continent: str): continent = continent.title() if continent in df["Continent"].unique().tolist(): filter_by_continent = df[df["Continent"] == continent] min_population_by_continent = filter_by_continent["Population"].min() return {"min_population": f"{min_population_by_continent}"} raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail={ "message": "Invalid Attribute!"})