Browse Source

add routers

Zhang Li 2 years ago
parent
commit
20df4cb13e
3 changed files with 61 additions and 47 deletions
  1. 10 0
      app/__init__.py
  2. 43 1
      app/routers/job_jdbc_datasource.py
  3. 8 46
      server.py

+ 10 - 0
app/__init__.py

@@ -0,0 +1,10 @@
+
+from app.models.database import SessionLocal
+
+# Dependency
+def get_db():
+    try:
+        db = SessionLocal()
+        yield db
+    finally:
+        db.close()

+ 43 - 1
app/routers/job_jdbc_datasource.py

@@ -1,5 +1,47 @@
 from fastapi import APIRouter
 
-router = APIRouter()
+from fastapi import Depends
+from sqlalchemy.orm import Session
+from app import schemas
 
+import app.crud as crud
+from utils.sx_time import sxtimeit
+from utils.sx_web import web_try
+from fastapi_pagination import Page, add_pagination, paginate, Params
 
+from app import get_db
+
+
+
+router = APIRouter(
+    prefix="/jpt/datasource",
+    tags=["datasource"],
+)
+
+@router.post("/")
+@web_try()
+@sxtimeit
+def create_datasource(ds: schemas.JobJdbcDatasourceCreate, db: Session = Depends(get_db)):
+    return crud.create_job_jdbc_datasource(db, ds)
+
+
+
+@router.get("/")
+@web_try()
+@sxtimeit
+def get_datasources(params: Params=Depends(), db: Session = Depends(get_db)):
+    return paginate(crud.get_job_jdbc_datasources(db), params)
+
+@router.put("/{ds_id}")
+@web_try()
+@sxtimeit
+def update_datasource(ds_id: int, ds: schemas.JobJdbcDatasourceUpdate, db: Session = Depends(get_db)):
+    return crud.update_job_jdbc_datasources(db, ds_id, ds)
+
+@router.delete("/{ds_id}")
+@web_try()
+@sxtimeit
+def delete_job_jdbc_datasource(ds_id: int, db: Session = Depends(get_db)):
+    return crud.delete_job_jdbc_datasource(db, ds_id)
+
+add_pagination(router)

+ 8 - 46
server.py

@@ -1,21 +1,18 @@
-from asyncio.constants import DEBUG_STACK_DEPTH
-from typing import List
 
-from fastapi import Depends, FastAPI, HTTPException
+from fastapi import  FastAPI
 from fastapi.middleware.cors import CORSMiddleware
-from sqlalchemy.orm import Session
-from app import schemas
 
-from app.models.database import SessionLocal, engine, Base
-import app.crud as crud
-from utils.sx_time import sxtimeit
-from utils.sx_web import web_try
-from fastapi_pagination import Page, add_pagination, paginate, Params
+
+from app.models.database import  engine, Base
+
+import app.routers.job_jdbc_datasource as router_jjds
 
 Base.metadata.create_all(bind=engine)
 
-app = FastAPI()
+app = FastAPI(prefix='/jpt')
+
 
+app.include_router(router_jjds.router)
 
 
 # CORS 跨源资源共享
@@ -27,13 +24,6 @@ app.add_middleware(
     allow_headers=["*"],
 )
 
-# Dependency
-def get_db():
-    try:
-        db = SessionLocal()
-        yield db
-    finally:
-        db.close()
 
 
 # Get 健康检查
@@ -44,34 +34,6 @@ def ping():
 
 
 
-@app.post("/datasource/")
-@web_try()
-@sxtimeit
-def create_datasource(ds: schemas.JobJdbcDatasourceCreate, db: Session = Depends(get_db)):
-    return crud.create_job_jdbc_datasource(db, ds)
-
-
-
-@app.get("/datasource/")
-@web_try()
-@sxtimeit
-def get_datasources(params: Params=Depends(), db: Session = Depends(get_db)):
-    return paginate(crud.get_job_jdbc_datasources(db), params)
-
-@app.put("/datasource/{ds_id}")
-@web_try()
-@sxtimeit
-def update_datasource(ds_id: int, ds: schemas.JobJdbcDatasourceUpdate, db: Session = Depends(get_db)):
-    return crud.update_job_jdbc_datasources(db, ds_id, ds)
-
-@app.delete("/datasource/{ds_id}")
-@web_try()
-@sxtimeit
-def delete_job_jdbc_datasource(ds_id: int, db: Session = Depends(get_db)):
-    return crud.delete_job_jdbc_datasource(db, ds_id)
-
-add_pagination(app)
-
 
 if __name__ == '__main__':
     import uvicorn