|
|
@@ -0,0 +1,373 @@
|
|
|
+## 接口调用测试与说明
|
|
|
+
|
|
|
+本文档将带入具体的数据进行测试,并解释一部分的参数和逻辑,并会给出hdfs的测试方法
|
|
|
+
|
|
|
+#### 用户注册与登录
|
|
|
+
|
|
|
+数据库中,已注册用户tsc,密码为12345678
|
|
|
+
|
|
|
+注册时id可以**随意取值**,因为数据库会自动填充id
|
|
|
+
|
|
|
+请求成功后,用navicat打开user表,发现出现了tsc用户
|
|
|
+
|
|
|
+如果想重置自动递增的id,用truncate table user
|
|
|
+
|
|
|
+登录成功后,会返回userId,需要本地缓存,用于其他接口
|
|
|
+
|
|
|
+<img src="E:\大学学习资料\创新创业项目资料\TeamAI-FrontEnd\参考\接口测试md\接口调用测试&说明.assets\用户注册.jpg" alt="用户注册" style="zoom:50%;" />
|
|
|
+
|
|
|
+<img src="E:\大学学习资料\创新创业项目资料\TeamAI-FrontEnd\参考\接口测试md\接口调用测试&说明.assets\用户登录.jpg" alt="用户登录" style="zoom:50%;" />
|
|
|
+
|
|
|
+#### 文件上传
|
|
|
+
|
|
|
+**注意:该接口没有判重,所以尽可能不要重复上传同一文件**
|
|
|
+
|
|
|
+如果要重新上传,先用hdfs命令删除
|
|
|
+
|
|
|
+<img src="E:\大学学习资料\创新创业项目资料\TeamAI-FrontEnd\参考\接口测试md\接口调用测试&说明.assets\文件上传2.jpg" alt="文件上传2" style="zoom:50%;" />
|
|
|
+
|
|
|
+在postman里,点击file右侧可以选择text类型或file类型,file类型可以选择文件
|
|
|
+
|
|
|
+上传成功后
|
|
|
+
|
|
|
+##### hdfs操作相关方法
|
|
|
+
|
|
|
+hdfs页面在50070端口
|
|
|
+
|
|
|
+spark页面在8080端口
|
|
|
+
|
|
|
+```
|
|
|
+cd /ai_environment_jars/hadoop-2.7.4
|
|
|
+#进入hadoop目录
|
|
|
+bin/hdfs dfs -ls /data/java_compile/
|
|
|
+#查看上传文件
|
|
|
+bin/hdfs dfs -rm -r /data/java_compile/*
|
|
|
+#删除所有文件
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#### 文件查询
|
|
|
+
|
|
|
+getall只需要传入userId,这里传入tsc用户的id
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+getDetail接口传入文件id,这里传入上面upload的event_data.csv的fileId=1
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+结果为
|
|
|
+
|
|
|
+```
|
|
|
+{
|
|
|
+ "timestamp": 1647334283649,
|
|
|
+ "status": 200,
|
|
|
+ "data": {
|
|
|
+ "fileName": "event_data",
|
|
|
+ "createTime": "2022-03-15T08:47:52.093+00:00",
|
|
|
+ "fileStrucInfo": {
|
|
|
+ "totalRows": "754"
|
|
|
+ },
|
|
|
+ "headerInfos": [
|
|
|
+ {
|
|
|
+ "id": 33,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "frame_index",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 1,
|
|
|
+ "fieldType": "int",
|
|
|
+ "valueInfo": "[\"79\",\"89992\"]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 34,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "time",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 1,
|
|
|
+ "fieldType": "double",
|
|
|
+ "valueInfo": "[\"3.16\",\"3599.68\"]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 35,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "road",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 0,
|
|
|
+ "fieldType": "string",
|
|
|
+ "valueInfo": "[\"R\",\"L\"]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 36,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "lane",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 0,
|
|
|
+ "fieldType": "string",
|
|
|
+ "valueInfo": "[\"r\",\"m\",\"l\"]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 37,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "vehicle_class",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 0,
|
|
|
+ "fieldType": "string",
|
|
|
+ "valueInfo": "[\"car\",\"truck\",\"bus\"]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 38,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "vehicle_id",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 1,
|
|
|
+ "fieldType": "int",
|
|
|
+ "valueInfo": "[\"20\",\"46862\"]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 39,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "event_type",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 0,
|
|
|
+ "fieldType": "string",
|
|
|
+ "valueInfo": "[\"cruise\",\"overdrive\"]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 40,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "duration",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 0,
|
|
|
+ "fieldType": "string",
|
|
|
+ "valueInfo": "[\"48,60\",\"24,36\",\"36,48\",\"12,24\",\"0,12\"]"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+具体含义查看接口文档
|
|
|
+
|
|
|
+##### get/allfileandfunc
|
|
|
+
|
|
|
+相比get/all,会返回可用的数理分析函数信息
|
|
|
+
|
|
|
+这里的funcInfos是手动导入的,**有些参数作用不明**
|
|
|
+
|
|
|
+```
|
|
|
+{
|
|
|
+ "timestamp": 1647335129081,
|
|
|
+ "status": 200,
|
|
|
+ "data": {
|
|
|
+ "fileNamePojos": [
|
|
|
+ {
|
|
|
+ "fileId": "1",
|
|
|
+ "fileName": "event_data"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "funcInfos": [
|
|
|
+ {
|
|
|
+ "id": 1,
|
|
|
+ "funcDes": null,
|
|
|
+ "funcName": "数据分布",
|
|
|
+ "flagOfType": 2,
|
|
|
+ "flagOfConOrDis": 2
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 2,
|
|
|
+ "funcDes": null,
|
|
|
+ "funcName": "散点图",
|
|
|
+ "flagOfType": 2,
|
|
|
+ "flagOfConOrDis": 2
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 3,
|
|
|
+ "funcDes": null,
|
|
|
+ "funcName": "数据统计",
|
|
|
+ "flagOfType": 2,
|
|
|
+ "flagOfConOrDis": 2
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 4,
|
|
|
+ "funcDes": null,
|
|
|
+ "funcName": "偏度-峰度",
|
|
|
+ "flagOfType": 2,
|
|
|
+ "flagOfConOrDis": 2
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 5,
|
|
|
+ "funcDes": null,
|
|
|
+ "funcName": "皮尔森相关系数",
|
|
|
+ "flagOfType": 2,
|
|
|
+ "flagOfConOrDis": 2
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 6,
|
|
|
+ "funcDes": null,
|
|
|
+ "funcName": "平均值",
|
|
|
+ "flagOfType": 2,
|
|
|
+ "flagOfConOrDis": 2
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+#### 文件分析
|
|
|
+
|
|
|
+传入fileId=1,即上传的event_data.csv,结果为
|
|
|
+
|
|
|
+```
|
|
|
+{
|
|
|
+ "timestamp": 1647335223563,
|
|
|
+ "status": 200,
|
|
|
+ "data": {
|
|
|
+ "fileName": "event_data",
|
|
|
+ "createTime": "2022-03-15T09:02:05.093+00:00",
|
|
|
+ "fileStrucInfo": {
|
|
|
+ "totalRows": "754"
|
|
|
+ },
|
|
|
+ "headerInfos": [
|
|
|
+ {
|
|
|
+ "id": 73,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "frame_index",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 1,
|
|
|
+ "fieldType": "int",
|
|
|
+ "valueInfo": "[\"79\",\"89992\"]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 74,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "time",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 1,
|
|
|
+ "fieldType": "double",
|
|
|
+ "valueInfo": "[\"3.16\",\"3599.68\"]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 75,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "road",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 0,
|
|
|
+ "fieldType": "string",
|
|
|
+ "valueInfo": "[\"R\",\"L\"]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 76,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "lane",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 0,
|
|
|
+ "fieldType": "string",
|
|
|
+ "valueInfo": "[\"r\",\"m\",\"l\"]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 77,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "vehicle_class",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 0,
|
|
|
+ "fieldType": "string",
|
|
|
+ "valueInfo": "[\"car\",\"truck\",\"bus\"]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 78,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "vehicle_id",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 1,
|
|
|
+ "fieldType": "int",
|
|
|
+ "valueInfo": "[\"20\",\"46862\"]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 79,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "event_type",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 0,
|
|
|
+ "fieldType": "string",
|
|
|
+ "valueInfo": "[\"cruise\",\"overdrive\"]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 80,
|
|
|
+ "fileInfoId": 1,
|
|
|
+ "fieldName": "duration",
|
|
|
+ "aliasName": "",
|
|
|
+ "fieldDes": "",
|
|
|
+ "nullsRatio": 0.0,
|
|
|
+ "conOrDis": 0,
|
|
|
+ "fieldType": "string",
|
|
|
+ "valueInfo": "[\"48,60\",\"24,36\",\"36,48\",\"12,24\",\"0,12\"]"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+**当调用getDetail时似乎已经完成了分析过程**
|
|
|
+
|
|
|
+这里head_info字段id不同是因为想在数据库中吧自动递增设为1失败了,所以继续递增
|
|
|
+
|
|
|
+#### 模型类别
|
|
|
+
|
|
|
+使用时可以通过GET:/get/models,通过模型类型的名称获得详细数据
|
|
|
+
|
|
|
+参数的含义详见模型类别表model_type
|
|
|
+
|
|
|
+| 类型名 | 中文名 | 参数列表 |
|
|
|
+| ------------------------------ | ---------------- | ---------------------------------- |
|
|
|
+| LogisticRegression | 逻辑回归 | [MaxIter,RegParam,ElasticNetParam] |
|
|
|
+| DecisionTree | 决策树 | [Category,TrainingDataSetOccupy] |
|
|
|
+| RandomForest | 随机森林 | [MaxIter,RegParam,ElasticNetParam] |
|
|
|
+| GBDT | 梯度提升决策树 | [MaxIter,RegParam,ElasticNetParam] |
|
|
|
+| MultilayerPerceptronClassifier | 多层感知器分类器 | [Category,TrainingDataSetOccupy] |
|
|
|
+| NaiveBayes | 朴素贝叶斯 | [Category,TrainingDataSetOccupy] |
|
|
|
+| RandomForestRegression | 随机森林回归 | [Category,TrainingDataSetOccupy] |
|
|
|
+| K-Means | K-均值 | [NumOfCluster,Seed] |
|
|
|
+
|
|
|
+#### 分析函数类别
|
|
|
+
|
|
|
+目前分析函数表func_info其他属性意义不明
|
|
|
+
|
|
|
+| 数据分布 |
|
|
|
+| -------------- |
|
|
|
+| 散点图 |
|
|
|
+| 数据统计 |
|
|
|
+| 偏度-峰度 |
|
|
|
+| 皮尔森相关系数 |
|
|
|
+| 平均值 |
|
|
|
+
|