Skip to content

Commit 1d3b1d6

Browse files
committed
express-openapi: Add definition for path item module
1 parent cbe236e commit 1d3b1d6

File tree

2 files changed

+61
-4
lines changed

2 files changed

+61
-4
lines changed

express-openapi/express-openapi-tests.ts

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,43 @@ api = openapi.initialize({
1313
routes: './api-routes'
1414
});
1515

16-
app.use(function (err, req, res, next) {
17-
res.status(err.status).json(err);
18-
});
16+
app.listen(3000);
17+
18+
// "./api-routes/user/{id}.ts"
19+
export var get: openapi.Operation = (req, res, next) => {
20+
};
21+
22+
export var post: openapi.Operation = [(req, res, next) => {}];
23+
24+
export var parameters = [
25+
{
26+
name: 'id',
27+
in: 'path',
28+
type: 'string'
29+
}
30+
];
31+
32+
get.apiDoc = {
33+
description: 'get user information',
34+
operationId: 'getUser',
35+
parameters: [
36+
{
37+
name: 'includeDetail',
38+
in: 'query',
39+
type: 'boolean'
40+
}
41+
],
42+
responses: {
43+
default: {$ref: '#/definitions/error'}
44+
},
45+
"x-some-vendor-property": {}
46+
};
1947

20-
app.listen(3000);
48+
post.apiDoc = {
49+
description: 'post to user',
50+
operationId: 'postToUser',
51+
responses: {
52+
default: {$ref: '#/definitions/error'}
53+
},
54+
"x-some-vendor-property": {}
55+
}

express-openapi/express-openapi.d.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,28 @@ declare module "express-openapi" {
251251
routes: string
252252
}
253253

254+
export interface OperationFunction extends express.RequestHandler {
255+
apiDoc?: OpenApi.OperationObject;
256+
}
257+
258+
export interface OperationHandlerArray {
259+
apiDoc?: OpenApi.OperationObject;
260+
[index: number]: express.RequestHandler;
261+
}
262+
263+
export type Operation = OperationFunction | OperationHandlerArray;
264+
265+
export interface PathModule {
266+
parameters?: OpenApi.Parameters;
267+
get?: Operation;
268+
put?: Operation;
269+
post?: Operation;
270+
delete?: Operation;
271+
patch?: Operation;
272+
options?: Operation;
273+
head?: Operation;
274+
}
275+
254276
interface IJsonSchema {
255277
id?: string
256278
$schema?: string

0 commit comments

Comments
 (0)