from fastapi import FastAPI, Query from fastapi.middleware.cors import CORSMiddleware import json from pathlib import Path app = FastAPI(title='Quran API', version='1.0.0') app.add_middleware(CORSMiddleware, allow_origins=['*'], allow_methods=['*'], allow_headers=['*']) with open(Path(__file__).parent / 'surahs.json', 'r', encoding='utf-8') as f: SURAHS = json.load(f) @app.get('/') def root(): return {'name':'Quran API','total':len(SURAHS)} @app.get('/surahs') def surahs(): return [{'id':s['id'],'name_ar':s['name_ar'],'verses':s['verses_count'],'type':s['type']} for s in SURAHS] @app.get('/surahs/{sid}') def one(sid:int): if sid<1 or sid>114: return {'error':'1-114'} return SURAHS[sid-1] @app.get('/search') def search(q:str=Query(...)): r=[s for s in SURAHS if q in s['name_ar'] or q.lower() in s['name_en'].lower()] return {'q':q,'n':len(r),'results':r} if __name__=='__main__': import uvicorn; uvicorn.run(app,host='0.0.0.0',port=8000)