0.2.2 • Published 2 years ago
aejo v0.2.2
AEJO
(AJV + Express.js + JSON Schema + OAS 3.x) API Builder
A library for building fully documented and validated Express API endpoints
- Composable functions based on OpenAPI 3.x schemas (fully typed)
- Generates OAS 3.x schemas
- Express.js Param, Query, Body validations via AJV
- Scoped auth strategies
Query Params
// Validate `limit` against `req.query`
Query({
name: 'limit',
description: 'max number',
schema: {
type: 'integer',
minimum: 1,
},
})
Controller
// Define a new controller using the `/api/users` path
Controller({
prefix: '/api/users',
// DI express router
route: (router: Router): AppRoute =>
Route(
router,
// Define a new path under the `/api/users` controller
Path(
'/',
AsyncGet({
tags: ['users'],
description: 'List Users',
// Define path parameters
parameters: [
Query({
name: 'limit',
description: 'max number',
schema: {
type: 'integer',
minimum: 1,
},
}),
],
// Middleware handlers
middleware: [
async (req: Request, res: Response, next: NextFunction) => {
const users = await UserService(req.query)
res.status(200).send(users)
},
],
// Endpoint Responses (testable)
responses: {
'200': {
description: 'Success',
content: UserListResponse,
},
},
})
)
),
})
TODO
- Actual documentation
- Publish npm
- Better OAS support
- More Tests
0.2.2
2 years ago
0.2.1
2 years ago
0.2.0
2 years ago
0.1.22
3 years ago
0.1.23
3 years ago
0.1.20
3 years ago
0.1.21
3 years ago
0.1.18
3 years ago
0.1.19
3 years ago
0.1.17
4 years ago
0.1.16
4 years ago
0.1.14
4 years ago
0.1.15
4 years ago
0.1.12
4 years ago
0.1.13
4 years ago
0.1.11
4 years ago
0.1.10
4 years ago
0.1.8
4 years ago
0.1.7
4 years ago
0.1.9
4 years ago
0.1.6
4 years ago
0.1.5
4 years ago
0.1.4
4 years ago
0.1.2
4 years ago
0.1.1
4 years ago
0.1.3
4 years ago
0.1.0
4 years ago