Spaces:
Sleeping
Sleeping
File size: 1,899 Bytes
5fda149 3ac235b 5fda149 d7a5b08 5fda149 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | from fastapi import FastAPI, Query, HTTPException
from fastapi.responses import JSONResponse
import requests
import os
app = FastAPI(
title="API",
description="API",
version="1.0.0"
)
# Replace this with an API you own or are authorized to proxy.
API = os.getenv( "API" )
REQUEST_TIMEOUT = 20
@app.get("/")
def home():
return {
"status": True,
"message": "API is running"
}
@app.get("/api")
def lookup(
num: str = Query(..., min_length=1)
):
try:
response = requests.get(
API,
params={"num": num},
timeout=REQUEST_TIMEOUT,
headers={
"Accept": "application/json",
"User-Agent": "Mozilla/5.0"
}
)
response.raise_for_status()
result = response.json()
except requests.RequestException:
raise HTTPException(
status_code=502,
detail="Request failed"
)
except ValueError:
raise HTTPException(
status_code=502,
detail="Request failed"
)
# -----------------------------------------
# NO DATA RESPONSE
# -----------------------------------------
if result.get("success") is False:
return JSONResponse(
content={
"Main_Records": None,
"Alt_Records": None
}
)
# -----------------------------------------
# SUCCESS RESPONSE
# -----------------------------------------
data = result.get("data", {})
inner_data = data.get("Data", {})
return JSONResponse(
content={
"Main_Records": inner_data.get("Main_Records"),
"Alt_Records": inner_data.get("Alt_Records")
}
)
if __name__ == "__main__":
import uvicorn
uvicorn.run(
app,
host="0.0.0.0",
port=7860
) |