JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 41683
  • Score
    100M100P100Q147410F
  • License MIT

A fluent client for OpenAPI and Swagger

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

Build Status Greenkeeper badge

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.

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".