▪️ operationHandlers
Defines the base directory for operation handlers. This is used in conjunction with express-openapi-validator's OpenAPI vendor extensions, x-eov-operation-id, x-eov-operation-handler and OpenAPI's operationId. See example.
Additionally, if you want to change how modules are resolved e.g. use dot delimited operation ids e.g. path.to.module.myFunction, you may optionally add a custom resolver. See documentation and example
Option-schema
operationHandlers (optional)
string- the base directory containing operation handlersfalse- (default) disable auto wired operation handlers-
{ ... }- specifies a base directory and optionally a custom resolverFor example:
OpenAPI Vendor extensions
x-eov-operation-handler
Note
The x-eov-operation-handler OpenAPI vendor extension specifies a path relative to operationHandlers. Thus if operationHandlers is /handlers and an x-eov-operation-handler has path routes/ping, then the handler file /handlers/routes/ping.js (or ts) is used.
Complete example here
api.yaml
/ping:
get:
description: |
ping then pong!
# OpenAPI's operationId may be used to to specify the operation id
operationId: ping
# x-eov-operation-id may be used to specify the operation id
# Used when operationId is omitted. Overrides operationId when both are specified
x-eov-operation-id: ping
# specifies the path to the operation handler.
# the path is relative to the operationHandlers option
# e.g. operations/base/path/routes/ping.js
x-eov-operation-handler: routes/ping
responses:
'200':
description: OK
# ...
routes/ping.js
x-eov-operation-handler specifies the path to this handlers file, ping.js
x-eov-operation-id (or operationId) specifies operation handler's key e.g. ping