Skip to content

Commit 419b864

Browse files
authored
Create Api.md
1 parent 97c1b01 commit 419b864

File tree

1 file changed

+394
-0
lines changed

1 file changed

+394
-0
lines changed

Api.md

Lines changed: 394 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,394 @@
1+
2+
## 接口开放
3+
### 本地接口
4+
Android端微型服务器使用Json方式传递数据,内置静态服务器,非常适合前后端分离。内置功能包含:
5+
1. 路由注册
6+
2. 文件下载
7+
3. 静态服务
8+
``` java
9+
if (urlSplit.length > 1) {
10+
// error-demo
11+
if ("error".equals(urlSplit[1])) {
12+
Route errorRoute = new ErrorRoute();
13+
Result process = errorRoute.process(request);
14+
response = new JsonResponse(process);
15+
return response;
16+
}
17+
18+
if ("db".equals(urlSplit[1])) {
19+
Route dbRoute = new DbRoute(mContext);
20+
Result process = dbRoute.process(request);
21+
response = new JsonResponse(process);
22+
return response;
23+
}
24+
25+
if ("disk".equals(urlSplit[1])) {
26+
Route diskRoute = new DiskRoute(mContext);
27+
Result process = diskRoute.process(request);
28+
response = new JsonResponse(process);
29+
return response;
30+
}
31+
32+
//SimpleHTTPServer
33+
if ("file".equals(urlSplit[1])) {
34+
return new ByteResponse(Utils.loadFileContent(requestURI.split("file")[1]));
35+
}
36+
}
37+
//资源处理
38+
return new ByteResponse(Utils.loadAssetContent(WEB_FOLDER + requestURI, mContext.getAssets()));
39+
```
40+
41+
其中,第3-20行是内置路由规则,`error`处理了错误异常的Response,`db`处理了内置数据库查看工具的Api,`disk`处理了SDcard查看工具的Api,这三个路由返回结果都是Json方式。
42+
43+
`file`是下载工具,通过这个Api可以下载Sdcard内任何有权限的文件,遇到目录则压缩后下载。
44+
45+
如果匹配不到,那么就到Assets目录下面匹配静态资源,他可以根据文件类型自动匹配Content-Type。所以如果想输出静态Html那么就放到这个匹配规则里边。
46+
47+
48+
### Api
49+
目前此工具提供数据库查看和SD卡查看两种功能,这两个功能通过Restful风格提供。下面开放的Api
50+
#### 数据库工具
51+
##### 列出数据库
52+
53+
```
54+
http://127.0.0.1:8089/db/listDatabase
55+
```
56+
57+
方法:GET
58+
参数:无
59+
响应:
60+
``` json
61+
{
62+
"success": true,
63+
"message": "ok",
64+
"obj": [
65+
{
66+
"name": "Contact.db",
67+
"path": "/data/user/0/cn.liucl.unitedebugtoolsclient/databases/Contact.db"
68+
},
69+
{
70+
"name": "Car.db",
71+
"path": "/data/user/0/cn.liucl.unitedebugtoolsclient/databases/Car.db"
72+
}
73+
]
74+
}
75+
```
76+
77+
---
78+
##### 列出表
79+
80+
```
81+
http://127.0.0.1:8089/db/listTable?dbName=Car.db
82+
```
83+
84+
方法:GET
85+
参数:dbName
86+
响应:
87+
88+
```
89+
{
90+
"success": true,
91+
"message": "ok",
92+
"obj": [
93+
"cars"
94+
]
95+
}
96+
```
97+
98+
---
99+
##### 查询数据
100+
101+
```
102+
http://127.0.0.1:8089/db/query?dbName=Car.db&tableName=cars
103+
```
104+
105+
方法:GET
106+
参数:
107+
108+
| 参数 | 描述 |
109+
| --- | --- |
110+
| dbName | 数据库名称 |
111+
| tableName | 表名 |
112+
| condition | 查询条件 |
113+
| limit | 查询多少条 |
114+
| offset | 偏移量 |
115+
116+
响应:
117+
```
118+
{
119+
"success": true,
120+
"message": "ok",
121+
"obj": {
122+
"columns": [
123+
{
124+
"columnName": "id",
125+
"isPrimary": true
126+
},
127+
{
128+
"columnName": "name",
129+
"isPrimary": false
130+
},
131+
{
132+
"columnName": "color",
133+
"isPrimary": false
134+
},
135+
{
136+
"columnName": "mileage",
137+
"isPrimary": false
138+
}
139+
],
140+
"list": [
141+
{
142+
"id": 1,
143+
"name": "name_0",
144+
"color": "RED",
145+
"mileage": 10.449999809265137
146+
},
147+
{
148+
"id": 2,
149+
"name": "name_1",
150+
"color": "RED",
151+
"mileage": 11.449999809265137
152+
},
153+
{
154+
"id": 3,
155+
"name": "name_2",
156+
"color": "RED",
157+
"mileage": 12.449999809265137
158+
},
159+
{
160+
"id": 4,
161+
"name": "name_3",
162+
"color": "RED",
163+
"mileage": 13.449999809265137
164+
}
165+
],
166+
"pageInfo": {
167+
"count": 50
168+
}
169+
}
170+
}
171+
```
172+
173+
---
174+
##### 插入数据
175+
176+
```
177+
http://127.0.0.1:8089/db/insert
178+
```
179+
180+
方法:POST
181+
参数:
182+
183+
| 参数 | 描述 |
184+
| --- | --- |
185+
| dbName | 数据库名 |
186+
| tableName | 表名 |
187+
| newValue | 插入值的json |
188+
189+
响应:
190+
```
191+
{
192+
"success": true,
193+
"message": "ok",
194+
"obj": null
195+
}
196+
```
197+
198+
---
199+
##### 更新数据
200+
201+
```
202+
http://127.0.0.1:8089/db/update
203+
```
204+
205+
方法:POST
206+
参数:
207+
208+
| 参数 | 描述 |
209+
| --- | --- |
210+
| dbName | 数据库名 |
211+
| tableName | 表名 |
212+
| condition | 条件 |
213+
| newValue | 新值 |
214+
215+
响应:
216+
```
217+
{
218+
"success": true,
219+
"message": "ok",
220+
"obj": null
221+
}
222+
```
223+
224+
---
225+
##### 删除数据
226+
227+
```
228+
http://127.0.0.1:8089/db/delete
229+
```
230+
231+
方法:GET
232+
参数:
233+
234+
| 参数 | 描述 |
235+
| --- | --- |
236+
| dbName | 数据库名 |
237+
| tableName | 表名 |
238+
| condition | 条件 |
239+
240+
响应:
241+
```
242+
{
243+
"success": true,
244+
"message": "ok",
245+
"obj": null
246+
}
247+
```
248+
249+
---
250+
##### 查看当前数据库版本号
251+
252+
```
253+
http://127.0.0.1:8089/db/version
254+
```
255+
256+
方法:GET
257+
参数:
258+
259+
| 参数 | 描述 |
260+
| --- | --- |
261+
| dbName | 数据库名 |
262+
263+
响应:
264+
```
265+
{
266+
"success": true,
267+
"message": "ok",
268+
"obj": {
269+
"version":20
270+
}
271+
}
272+
```
273+
274+
---
275+
##### 查看表数据个数
276+
277+
```
278+
http://127.0.0.1:8089/db/count
279+
```
280+
281+
方法:GET
282+
参数:
283+
284+
| 参数 | 描述 |
285+
| --- | --- |
286+
| dbName | 数据库名 |
287+
| tableName | 表名 |
288+
| condition | 条件 |
289+
290+
响应:
291+
```
292+
{
293+
"success": true,
294+
"message": "ok",
295+
"obj": {
296+
"count":50
297+
}
298+
}
299+
```
300+
301+
#### SDCard工具
302+
##### 查看当前目录下所有文件和文件夹
303+
```
304+
127.0.0.1:8089/disk/list?type=sdcard&/data/io.lecon/
305+
```
306+
方法:GET
307+
参数:
308+
309+
| 参数 | 描述 |
310+
| --- | --- |
311+
| type | sdcard、inner SD卡还是App内部存储 |
312+
| path | 要列出的目录 |
313+
314+
响应:
315+
```
316+
{
317+
"success": true,
318+
"message": "ok",
319+
"obj": [
320+
{
321+
"filename": "log",
322+
"isFolder": true,
323+
"size": 0,
324+
"permission": "rwx",
325+
"realPath": "/storage/emulated/0/data/io.lecon/log"
326+
}
327+
]
328+
}
329+
```
330+
331+
---
332+
##### 重命名
333+
```
334+
127.0.0.1:8089/disk/rename?type=inner&/data/io.lecon/
335+
```
336+
方法:GET
337+
参数:
338+
339+
| 参数 | 描述 |
340+
| --- | --- |
341+
| type | sdcard、inner SD卡还是App内部存储 |
342+
| path | 要列出的目录 |
343+
344+
响应:
345+
```
346+
{
347+
"success": true,
348+
"message": "ok",
349+
"obj": null
350+
}
351+
```
352+
353+
---
354+
##### 删除当前目录下所有文件和文件夹
355+
```
356+
127.0.0.1:8089/disk/delete?type=sdcard&/data/io.lecon/
357+
```
358+
方法:GET
359+
参数:
360+
361+
| 参数 | 描述 |
362+
| --- | --- |
363+
| type | sdcard、inner SD卡还是App内部存储 |
364+
| path | 要列出的目录 |
365+
366+
响应:
367+
```
368+
{
369+
"success": true,
370+
"message": "ok",
371+
"obj": null
372+
}
373+
```
374+
375+
---
376+
377+
#### 其他
378+
##### 下载
379+
遇到文件下载,遇见文件夹压缩后下载
380+
```
381+
127.0.0.1:8089/file/you/file/path
382+
```
383+
方法:GET
384+
参数:无
385+
响应:
386+
```
387+
{
388+
"success": true,
389+
"message": "ok",
390+
"obj": null
391+
}
392+
```
393+
394+
---

0 commit comments

Comments
 (0)