from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import JSONResponse from fastapi.staticfiles import StaticFiles #import numpy as np import argparse import os import introspector_rdf HOST = os.environ.get("API_URL", "0.0.0.0") PORT = os.environ.get("PORT", 7860) parser = argparse.ArgumentParser() parser.add_argument("--host", default=HOST) parser.add_argument("--port", type=int, default=PORT) parser.add_argument("--reload", action="store_true", default=True) parser.add_argument("--ssl_certfile") parser.add_argument("--ssl_keyfile") args = parser.parse_args() app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) @app.get("/invert") async def invert(text: str): return { "original": text, "inverted": text[::-1], } @app.get("/data") async def get_data(): data = introspector_rdf.data() # data = {"data": [ # dict( # subject="this", # predicate="self_reference", # _object="", # ), # dict( # subject="introspector_rdf", # predicate="data", # _object=rows, # ), # ]} return JSONResponse(data) app.mount("/", StaticFiles(directory="static", html=True), name="static") if __name__ == "__main__": import uvicorn print(args) uvicorn.run( "app:app", host=args.host, port=args.port, reload=args.reload, ssl_certfile=args.ssl_certfile, ssl_keyfile=args.ssl_keyfile, )