Package Exports
- swagger-fluent
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (swagger-fluent) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
swagger-fluent
A fluent OpenAPI and Swagger client for JavaScript and Node.js.
fluent-client represents Path Item Object with chains of objects:
/api/v1/namespaces -> api.v1.namespaces
associates operations on a Path Item Object with functions:
/api/v1/namespaces -> api.v1.namespaces.get()
and represents Path Templating with function calls:
/api/v1/namespaces/{namespace}/pods -> api.v1.namespaces(namespace).pods
Configurable "backends" handle executing API calls by, for example,
using fetch
or Swagger
Client. A backend can also perform
error checking. The Swagger Client backend, for example, will perform
the usual parameter and resolution checking that
swagger-js performs and
will throw those errors to the caller.
Using
const spec = require('./swagger.json')
const url = 'https://petstore.swagger.io/v2/'
const FetchBackend = require('swagger-fluent/backends/fetch')
const backend = new FetchBackend({ fetch, url })
const { Client } = require('swagger-fluent')
const client = new Client({ spec, backend })
const response = await client.pet.findByStatus.get({ parameters: { status: 'available' } })
API
Client(options)
Create a fluent client for an OpenAPI or Swagger specification.
options.spec
- OpenAPI or Swagger specification.options.backend
- Object with an.http
method that executes HTTP r equests.options.getNames(name, ancestors)
- a function to translate each path name to an alternate name or array of names. You could, for example, alias the resource "namespaces" to "namespace" and "ns".
FetchBackend(options)
Create a Fetch API-based backend.
options.fetch
-fetch
function (e.g.,node-fetch
orwhatwg-fetch
).options.url
- Base URL for HTTP API.
const FetchBackend = require('swagger-fluent/backends/fetch')
RequestBackend(options)
const RequestBackend = require('swagger-fluent/backends/request')
SwaggerClientBackend(options)
Create a swagger-js-based backend.
const SwaggetClientBackend = require('swagger-fluent/backends/swagger-client')
Custom backend
The backend must implement an .http
method. swagger-fluent passes
the following options to the .http
method, and returns the result
directly to the API caller.
options.body
- JSONifable object.options.method
- HTTP method.options.pathItemObject
- Swagger/OpenAPI Path Item Object.options.parameters
- named query parameters.options.qs
- named query parameters (legacy).options.pathname
- URL pathname.options.stream
- true if called by a "stream method".