From cfbdefd1612eed8a454111c6accbfb2a2f51873e Mon Sep 17 00:00:00 2001 From: robo-bo Date: Sun, 4 Sep 2022 19:58:36 +0300 Subject: [PATCH] orc server fixes (before renamings) --- Sources/pyOpenRPA/Orchestrator/Server.py | 47 +++++++++++++++++------- 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/Sources/pyOpenRPA/Orchestrator/Server.py b/Sources/pyOpenRPA/Orchestrator/Server.py index 5f906e50..69598dd1 100755 --- a/Sources/pyOpenRPA/Orchestrator/Server.py +++ b/Sources/pyOpenRPA/Orchestrator/Server.py @@ -498,16 +498,18 @@ class HTTPRequestOld(): - - -# инициализация -app = FastAPI() - -# hello world, метод GET, возврат строки -#@app.get("/", response_class=PlainTextResponse) -#async def hello(): -# return "Hello World!" - +from pyOpenRPA import __version__ + +# ИНИЦИАЛИЗАЦИЯ FASTAPI! +app = FastAPI( + title = "pyOpenRPA (ORPA) Orchestrator", + description = "Сервер оркестратора pyOpenRPA Orchestrator", + version = __version__, + openapi_url="/orpa/fastapi/openapi.json", + docs_url = "/orpa/fastapi/docs", + redoc_url = "/orpa/fastapi/redoc", + swagger_ui_oauth2_redirect_url = "/orpa/fastapi/docs/oauth2-redirect", + ) def IdentifyAuthorize(inRequest:Request, inResponse:Response, inCookiesStr: Union[str, None] = Header(default=None,alias="Cookie"), @@ -574,6 +576,18 @@ def IdentifyAuthorize(inRequest:Request, inResponse:Response, else: raise HTTPException(status_code=401, detail="here is the details", headers={'Content-type':'text/html', 'WWW-Authenticate':'Basic'}) +lRouteList =[] +for lItem in app.router.routes: + lRouteList.append(lItem) +app.router.routes=[] +for lItem in lRouteList: + app.add_api_route( + path=lItem.path, + endpoint=lItem.endpoint, + methods=["GET"], + dependencies=[Depends(IdentifyAuthorize)], + tags=["FastAPI"] + ) def BackwardCompatibility(inRequest:Request, inResponse:Response, inBodyStr:str = Body(""), inAuthDict = None): lHTTPRequest = HTTPRequestOld(inRequest=inRequest, inResponse=inResponse, inAuthDict=inAuthDict) @@ -616,6 +630,7 @@ def InitFastAPI(): ServerSettings.SettingsUpdate(gSettingsDict) lL = gSettingsDict.get("Logger",None) gSettingsDict["ServerDict"]["ServerThread"] = app + for lConnectItemDict in gSettingsDict["ServerDict"]["URLList"]: if "ResponseFolderPath" in lConnectItemDict: app.mount(lConnectItemDict["URL"], @@ -628,14 +643,16 @@ def InitFastAPI(): path=lConnectItemDict["URL"], endpoint=BackwardCompatibityWrapperAuth, response_class=PlainTextResponse, - methods=[lConnectItemDict["Method"]] + methods=[lConnectItemDict["Method"]], + tags=["BackwardCompatibility"] ) else: app.add_api_route( path=lConnectItemDict["URL"], endpoint=BackwardCompatibityWrapperNoAuth, response_class=PlainTextResponse, - methods=[lConnectItemDict["Method"]] + methods=[lConnectItemDict["Method"]], + tags=["BackwardCompatibility"] ) elif lConnectItemDict.get("MatchType") in ["BeginWith", "Contains"]: lURLStr = lConnectItemDict["URL"] @@ -646,14 +663,16 @@ def InitFastAPI(): path=lURLStr, endpoint=BackwardCompatibityBeginWrapperAuth, response_class=PlainTextResponse, - methods=[lConnectItemDict["Method"]] + methods=[lConnectItemDict["Method"]], + tags=["BackwardCompatibility"] ) else: app.add_api_route( path=lURLStr, endpoint=BackwardCompatibityBeginWrapperNoAuth, response_class=PlainTextResponse, - methods=[lConnectItemDict["Method"]] + methods=[lConnectItemDict["Method"]], + tags=["BackwardCompatibility"] ) uvicorn.run('pyOpenRPA.Orchestrator.Server:app', host='0.0.0.0', port=1024)