a reusable pipe-fitting to be used with swagger-node-runner projects, allows giving aliases to parameters
A reusable pipe to be used with swagger-node-runner projects that allow specs
to give aliases to parameters.
The project elevates few known points about swagger-node-runner:
- it uses bagpipes to manage the internal flow of each request
- it uses config to read all the pipes
- it uses sway to read the openapi-spec document into a sway.SwaggerApi
model.
Basically, swagger-node-runner uses a single instance of sway.SwaggerApi to
handle all the requests. Once it obtained this sway.SwaggerApi instance,
it creates all the fittings that are listed in config.bagpipes.
This pipe uses it's creation hook on server load time to go over all parameters
of all operations found on the sway.SwaggerApi model, and whenever a parameter
defines an alias - it wraps it's sway.Parameter#getValue(req) method with a
fallback to the provided alias in case no value is found on the official name.
As a result, flow of parameters that do not define an alias is not changed, where
parameters that define an alias will try the alias in case the parameter of the
official name has no value.
#How to install it?
npm install swagger-params-alias --save
All you need to do is add the following section in your swagger.bagpipes config:
```
openapi-params-alias:
name: swagger-params-alias
aliasAttribute: x-alias
You can use the aliasAttribute to customize the attribute name that defines x-alias
the alias if you don't like the default.
If it's missing, the default value is .
Once added to your swagger.bagpipes, you can now name an alias for parametersaliasAttribute
with the attribute that is named in :
``
- name: name
x-alias: n
in: query
description: The name of the person to whom to say hello
required: true
type: stringname
In this example, this parameter has now an alias called n.name
Whenever a value is not found on - it is tried at n.name
This also means that if a request provides both and n only the value
in the official name is used.
- name: name
in: query
x-alias:
name: n
in: formData
``