26 lines
568 B
Python
26 lines
568 B
Python
from fastapi import FastAPI, HTTPException
|
|
from fastapi.responses import RedirectResponse
|
|
from pydantic import BaseModel
|
|
from app.utils import generate_short_code
|
|
|
|
app = FastAPI()
|
|
|
|
url_store = {}
|
|
|
|
class URLRequest(BaseModel):
|
|
url: str
|
|
|
|
@app.get("/")
|
|
def home():
|
|
return {"message": "URL Shortener API"}
|
|
|
|
@app.post("/shorten")
|
|
def shorten_url(request: URLRequest):
|
|
short_code = generate_short_code()
|
|
|
|
url_store[short_code] = {
|
|
"original_url": request.url,
|
|
"clicks": 0
|
|
}
|
|
|
|
return {"short_url": f"http://localhost:8000/{short_code}"} |