Skip to content

Commit 439ecec

Browse files
committed
Style(mock): change swagger config to better fit REST api
* fix fullscreen doesn't work bug * use global directive by default * add support to simulate request time * promise -> async/await * update package.json dependencies
1 parent d7839b9 commit 439ecec

33 files changed

+401
-364
lines changed

mock/articles.ts

+13-7
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ export const getArticle = (req: Request, res: Response) => {
5757
if (article.id.toString() === id) {
5858
return res.json({
5959
code: 20000,
60-
data: article
60+
data: {
61+
article
62+
}
6163
})
6264
}
6365
}
@@ -68,21 +70,25 @@ export const getArticle = (req: Request, res: Response) => {
6870
}
6971

7072
export const createArticle = (req: Request, res: Response) => {
71-
const { data } = req.body
73+
const { article } = req.body
7274
return res.json({
7375
code: 20000,
74-
data
76+
data: {
77+
article
78+
}
7579
})
7680
}
7781

7882
export const updateArticle = (req: Request, res: Response) => {
7983
const { id } = req.params
80-
const { data } = req.body
81-
for (const article of articleList) {
82-
if (article.id.toString() === id) {
84+
const { article } = req.body
85+
for (const v of articleList) {
86+
if (v.id.toString() === id) {
8387
return res.json({
8488
code: 20000,
85-
data
89+
data: {
90+
article
91+
}
8692
})
8793
}
8894
}

mock/role/index.ts

+12-14
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@ const roles: IRoleData[] = [
3838
export const getRoles = (req: Request, res: Response) => {
3939
return res.json({
4040
code: 20000,
41-
data: roles
41+
data: {
42+
total: roles.length,
43+
items: roles
44+
}
4245
})
4346
}
4447

@@ -52,19 +55,12 @@ export const createRole = (req: Request, res: Response) => {
5255
}
5356

5457
export const updateRole = (req: Request, res: Response) => {
55-
const { id } = req.params
56-
const { data } = req.body
57-
for (const role of roles) {
58-
if (role.key === id) {
59-
return res.json({
60-
code: 20000,
61-
data
62-
})
63-
}
64-
}
58+
const { role } = req.body
6559
return res.json({
66-
code: 70001,
67-
message: 'Role not found'
60+
code: 20000,
61+
data: {
62+
role
63+
}
6864
})
6965
}
7066

@@ -77,6 +73,8 @@ export const deleteRole = (req: Request, res: Response) => {
7773
export const getRoutes = (req: Request, res: Response) => {
7874
return res.json({
7975
code: 20000,
80-
data: routes
76+
data: {
77+
routes
78+
}
8179
})
8280
}

mock/swagger.yml

+41-15
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ paths:
9696
security:
9797
- AccessTokenAuth: []
9898
parameters:
99-
- name: data
99+
- name: article
100100
in: query
101101
required: true
102102
description: The data for new article.
@@ -114,7 +114,10 @@ paths:
114114
type: integer
115115
format: int32
116116
data:
117-
$ref: '#/components/schemas/Article'
117+
type: object
118+
properties:
119+
article:
120+
$ref: '#/components/schemas/Article'
118121
401:
119122
$ref: '#/components/responses/Unauthorized'
120123
/articles/{id}:
@@ -146,7 +149,10 @@ paths:
146149
type: integer
147150
format: int32
148151
data:
149-
$ref: '#/components/schemas/Article'
152+
type: object
153+
properties:
154+
article:
155+
$ref: '#/components/schemas/Article'
150156
401:
151157
$ref: '#/components/responses/Unauthorized'
152158
404:
@@ -167,8 +173,9 @@ paths:
167173
schema:
168174
type: integer
169175
format: int64
170-
- name: data
176+
- name: article
171177
in: query
178+
required: true
172179
description: data for the updated article.
173180
schema:
174181
$ref: '#/components/schemas/Article'
@@ -184,7 +191,10 @@ paths:
184191
type: integer
185192
format: int32
186193
data:
187-
$ref: '#/components/schemas/Article'
194+
type: object
195+
properties:
196+
article:
197+
$ref: '#/components/schemas/Article'
188198
401:
189199
$ref: '#/components/responses/Unauthorized'
190200
404:
@@ -226,7 +236,7 @@ paths:
226236
- articles
227237
summary: Get Pageviews Data
228238
description: Return a list of pageviews for each platforms.
229-
operationId: getPageViews
239+
operationId: getPageviews
230240
responses:
231241
200:
232242
description: OK
@@ -310,7 +320,7 @@ paths:
310320
security:
311321
- AccessTokenAuth: []
312322
parameters:
313-
- name: data
323+
- name: role
314324
in: query
315325
required: true
316326
description: The data for new role.
@@ -352,8 +362,9 @@ paths:
352362
schema:
353363
type: integer
354364
format: int64
355-
- name: data
365+
- name: role
356366
in: query
367+
required: true
357368
description: The data for updated role.
358369
schema:
359370
$ref: '#/components/schemas/Role'
@@ -369,7 +380,10 @@ paths:
369380
type: integer
370381
format: int32
371382
data:
372-
$ref: '#/components/schemas/Role'
383+
type: object
384+
properties:
385+
role:
386+
$ref: '#/components/schemas/Role'
373387
401:
374388
$ref: '#/components/responses/Unauthorized'
375389
404:
@@ -424,7 +438,10 @@ paths:
424438
type: integer
425439
format: int32
426440
data:
427-
$ref: '#/components/schemas/Role/properties/routes'
441+
type: object
442+
properties:
443+
routes:
444+
$ref: '#/components/schemas/Role/properties/routes'
428445
/users:
429446
get:
430447
tags:
@@ -468,7 +485,7 @@ paths:
468485
description: This can only be done by the logged in user.
469486
operationId: register
470487
parameters:
471-
- name: data
488+
- name: user
472489
in: query
473490
required: true
474491
description: The data for created user.
@@ -581,7 +598,10 @@ paths:
581598
type: integer
582599
format: int32
583600
data:
584-
$ref: '#/components/schemas/User'
601+
type: object
602+
properties:
603+
user:
604+
$ref: '#/components/schemas/User'
585605
400:
586606
$ref: '#/components/responses/InvalidUser'
587607
401:
@@ -603,7 +623,7 @@ paths:
603623
description: Name that need to be updated.
604624
schema:
605625
type: string
606-
- name: data
626+
- name: user
607627
in: query
608628
required: true
609629
description: The data for updated user.
@@ -621,7 +641,10 @@ paths:
621641
type: integer
622642
format: int32
623643
data:
624-
$ref: '#/components/schemas/User'
644+
type: object
645+
properties:
646+
user:
647+
$ref: '#/components/schemas/User'
625648
400:
626649
$ref: '#/components/responses/InvalidUser'
627650
401:
@@ -681,7 +704,10 @@ paths:
681704
type: integer
682705
format: int32
683706
data:
684-
$ref: '#/components/schemas/User'
707+
type: object
708+
properties:
709+
user:
710+
$ref: '#/components/schemas/User'
685711
401:
686712
$ref: '#/components/responses/Unauthorized'
687713
components:

mock/users.ts

+12-6
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,9 @@ export const getUserInfo = (req: Request, res: Response) => {
9090
// Mock data based on access token
9191
return res.json({
9292
code: 20000,
93-
data: req.header('X-Access-Token') == 'admin-token' ? userList[0] : userList[1]
93+
data: {
94+
user: req.header('X-Access-Token') == 'admin-token' ? userList[0] : userList[1]
95+
}
9496
})
9597
}
9698

@@ -100,7 +102,9 @@ export const getUserByName = (req: Request, res: Response) => {
100102
if (user.username === username) {
101103
return res.json({
102104
code: 20000,
103-
data: user
105+
data: {
106+
user
107+
}
104108
})
105109
}
106110
}
@@ -112,12 +116,14 @@ export const getUserByName = (req: Request, res: Response) => {
112116

113117
export const updateUser = (req: Request, res: Response) => {
114118
const { username } = req.params
115-
const { data } = req.body
116-
for (const user of userList) {
117-
if (user.username === username) {
119+
const { user } = req.body
120+
for (const v of userList) {
121+
if (v.username === username) {
118122
return res.json({
119123
code: 20000,
120-
data
124+
data: {
125+
user
126+
}
121127
})
122128
}
123129
}

package.json

+13-11
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"clipboard": "^2.0.4",
2020
"codemirror": "^5.47.0",
2121
"cors": "^2.8.5",
22-
"driver.js": "^0.9.6",
22+
"driver.js": "^0.9.7",
2323
"echarts": "^4.2.1",
2424
"element-ui": "2.8.2",
2525
"faker": "^4.1.0",
@@ -28,6 +28,7 @@
2828
"js-cookie": "^2.2.0",
2929
"jsonlint": "^1.6.3",
3030
"jszip": "^3.2.1",
31+
"lodash": "^4.17.11",
3132
"morgan": "^1.9.1",
3233
"normalize.css": "^8.0.1",
3334
"nprogress": "^0.2.0",
@@ -36,14 +37,14 @@
3637
"screenfull": "^4.2.0",
3738
"script-loader": "^0.7.2",
3839
"sortablejs": "^1.9.0",
39-
"tinymce": "^5.0.7",
40-
"tui-editor": "^1.4.2",
40+
"tinymce": "^5.0.8",
41+
"tui-editor": "^1.4.3",
4142
"vue": "^2.6.10",
4243
"vue-class-component": "^7.1.0",
4344
"vue-count-to": "^1.0.13",
4445
"vue-i18n": "^8.11.2",
4546
"vue-image-crop-upload": "^2.5.0",
46-
"vue-property-decorator": "^8.1.1",
47+
"vue-property-decorator": "^8.2.1",
4748
"vue-router": "^3.0.6",
4849
"vue-svgicon": "^3.2.6",
4950
"vue2-dropzone": "^3.5.9",
@@ -63,9 +64,10 @@
6364
"@types/express": "^4.17.0",
6465
"@types/faker": "^4.1.5",
6566
"@types/file-saver": "^2.0.1",
66-
"@types/jest": "^24.0.13",
67+
"@types/jest": "^24.0.15",
6768
"@types/js-cookie": "^2.2.2",
6869
"@types/jszip": "^3.1.6",
70+
"@types/lodash": "^4.14.134",
6971
"@types/morgan": "^1.7.35",
7072
"@types/nprogress": "^0.2.0",
7173
"@types/sortablejs": "^1.7.2",
@@ -78,29 +80,29 @@
7880
"@vue/cli-plugin-pwa": "^3.8.0",
7981
"@vue/cli-plugin-typescript": "^3.8.1",
8082
"@vue/cli-plugin-unit-jest": "^3.8.0",
81-
"@vue/cli-service": "^3.8.0",
83+
"@vue/cli-service": "^3.8.4",
8284
"@vue/eslint-config-standard": "^4.0.0",
8385
"@vue/eslint-config-typescript": "^4.0.0",
8486
"@vue/test-utils": "^1.0.0-beta.29",
8587
"babel-core": "^7.0.0-bridge.0",
86-
"babel-eslint": "^10.0.1",
88+
"babel-eslint": "^10.0.2",
8789
"concurrently": "^4.1.0",
8890
"eslint": "^5.16.0",
8991
"eslint-plugin-vue": "^5.2.2",
9092
"fibers": "^4.0.1",
9193
"jest": "^24.8.0",
92-
"lint-staged": "^8.2.0",
94+
"lint-staged": "^8.2.1",
9395
"sass": "^1.21.0",
9496
"sass-loader": "^7.1.0",
9597
"style-resources-loader": "^1.2.1",
9698
"swagger-routes-express": "^3.0.1",
9799
"ts-jest": "^24.0.2",
98-
"ts-node-dev": "^1.0.0-pre.39",
99-
"typescript": "3.5.1",
100+
"ts-node-dev": "^1.0.0-pre.40",
101+
"typescript": "3.5.2",
100102
"vue-cli-plugin-element": "^1.0.1",
101103
"vue-cli-plugin-style-resources-loader": "^0.1.3",
102104
"vue-template-compiler": "^2.6.10",
103-
"webpack": "^4.33.0"
105+
"webpack": "^4.34.0"
104106
},
105107
"bugs": {
106108
"url": "https://github.com/armour/vue-typescript-admin-template/issues"

0 commit comments

Comments
 (0)