fluent-openapi v3.1.0
fluent-openapi
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.namespacesassociates 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).podsConfigurable "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('fluent-openapi/backends/fetch')
const backend = new FetchBackend({ fetch, url })
const { Client } = require('fluent-openapi')
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.httpmethod 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-fetchfunction (e.g.,node-fetchorwhatwg-fetch).options.url- Base URL for HTTP API.
const FetchBackend = require('fluent-openapi/backends/fetch')RequestBackend(options)
const RequestBackend = require('fluent-openapi/backends/request')SwaggerClientBackend(options)
Create a swagger-js-based backend.
const SwaggetClientBackend = require('fluent-openapi/backends/swagger-client')Custom backend
The backend must implement an .http method. fluent-openapi 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".