summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author韩丁康 <[email protected]>2023-10-21 18:07:30 +0800
committer韩丁康 <[email protected]>2023-10-21 18:07:30 +0800
commit5c768cdc45e1e883dbc78d4f82391de0fba646e0 (patch)
tree714da045f38163d2a68928a616a6dc5a64ebdf79
parent42b45ab513941cfce69cafd06047c9a0950e5f41 (diff)
实现delay接口集合
-rw-r--r--app.py26
-rw-r--r--apps/datacheck.py4
-rw-r--r--apps/delay.py53
3 files changed, 71 insertions, 12 deletions
diff --git a/app.py b/app.py
index bb1f152..ddede45 100644
--- a/app.py
+++ b/app.py
@@ -1,10 +1,12 @@
-from flask import Flask,request
+from apiflask import APIFlask,Schema,PaginationSchema
+from apiflask.fields import List,Nested
+from flask import request
from apps.datacheck import bp as checkbp
-from apps.delay import bp as delaybp
+from apps.delay import bp as delaybp,TestNode
import pandas as pd
# 注册蓝图
-app = Flask(__name__)
+app = APIFlask(__name__)
app.register_blueprint(checkbp)
app.register_blueprint(delaybp)
@@ -13,13 +15,23 @@ app.register_blueprint(delaybp)
def hello_world(): # put application's code here
return 'Hello World!'
+class AllNode(Schema):
+ nodes=List(Nested(TestNode))
# 获取所有节点的信息
[email protected]('/allnode',methods=['GET'])
[email protected]('/allnode')
def nodeinfo():
df = pd.read_csv("./server.csv", encoding="utf-8")
- print(df)
- return "hello"
+ ans=[]
+ for index,row in df.iterrows():
+ ans.append({
+ 'Id':row['id'],
+ 'Name':row['name'],
+ 'Ip' : row['ip'],
+ 'Cou' : row['cou'],
+ 'Port' :row['port']})
+ return {'nodes':ans}
if __name__ == '__main__':
- app.run(debug=True,port=2525)
+ app.run(host="0.0.0.0",debug=True,port=2525)
diff --git a/apps/datacheck.py b/apps/datacheck.py
index f2f3244..436f866 100644
--- a/apps/datacheck.py
+++ b/apps/datacheck.py
@@ -1,7 +1,7 @@
# DNS记录测试接口
-from flask import Flask,Blueprint
+from apiflask import APIFlask,APIBlueprint
-bp=Blueprint("check",__name__,url_prefix="/check")
+bp=APIBlueprint("check",__name__,url_prefix="/check")
@bp.route("/test")
def hello():
diff --git a/apps/delay.py b/apps/delay.py
index 61fe284..5fb2cc8 100644
--- a/apps/delay.py
+++ b/apps/delay.py
@@ -1,12 +1,59 @@
# 时延测试接口
-from flask import Flask,Blueprint,request
-
-bp=Blueprint("delay",__name__,url_prefix="/delay")
+import random
+from apiflask.validators import OneOf
+from apiflask import APIFlask,APIBlueprint,Schema
+from apiflask.fields import Integer,String,List,Nested
+from flask import request
+import pandas as pd
+
+bp=APIBlueprint("delay",__name__,url_prefix="/delay")
+
+class TestNode(Schema):
+ Id = Integer()
+ Name=String()
+ Ip=String()
+ Cou=String()
+ Port=Integer()
+
+class Delay(Schema):
+ Id=Integer()
+ Delay=Integer()
+ Type=String()
+class DelayOut(Schema):
+ delay_data=List(Nested(Delay))
@bp.route("/test")
def hello():
return "hello"
[email protected]("/<string:type>")
[email protected]("获取每个节点的时延数据","type参数为{icmp,dns,tcp}中的一个")
+def get_pernode_delay(type):
+ ans = []
+ if type=="icmp":
+ df=pd.read_csv("./server.csv",encoding="utf-8")
+ for index,row in df.iterrows():
+ ans.append({
+ 'Id':row['id'],
+ 'Delay':random.randint(1,1000),
+ 'Type':type})
+ if type=="tcp":
+ df=pd.read_csv("./server.csv",encoding="utf-8")
+ for index,row in df.iterrows():
+ ans.append({
+ 'Id':row['id'],
+ 'Delay':random.randint(1,1000),
+ 'Type':type})
+ if type=="dns":
+ df=pd.read_csv("./server.csv",encoding="utf-8")
+ for index,row in df.iterrows():
+ ans.append({
+ 'Id':row['id'],
+ 'Delay':random.randint(1,1000),
+ 'Type':type})
+ return {'delay_data':ans}
+