25.2.3 • Published 12 hours ago

@readme/oas-to-snippet v25.2.3

Weekly downloads
1,484
License
MIT
Repository
github
Last release
12 hours ago

@readme/oas-to-snippet

Transform an OpenAPI operation into a code snippet.

Build npm.io

npm.io

This library was built with ReadMe's reference guide offering in mind but it will support all OpenAPI use-cases.

Installation

npm install --save @readme/oas-to-snippet

Usage

import Oas from 'oas';
import oasToSnippet from '@readme/oas-to-snippet';
import petstore from './petstore.json';

const apiDefinition = new Oas(petstore);
const operation = apiDefinition.operation('/pets', 'get');

// This is a keyed object containing formData for your operation. Available keys
// are: path, query, cookie, header, formData, and body.
const formData = {
  query: { sort: 'desc' },
};

// This is a keyed object containing authentication credentials for the
// operation. The keys for this object should match up with the `securityScheme`
// on the operation you're accessing, and its value should either be a String,
// or an Object containing `user` and/or `pass` (for Basic auth schemes).
const auth = {
  oauth2: 'bearerToken',
};

// This is the language to generate a snippet to. See below for supported
// languages.
//
// For supplying an alternative language target (like `axios` for `node`), you
// can do so by changing this variable to an array: `['node', 'axios']`. For the
// full list of alternative language targets that we support, see below.
const language = 'node';

// This will return an object containing `code` and `highlightMode`. `code` is
// the generated code snippet, while `highlightMode` is the language mode you
// can use to render it for syntax highlighting (with `codemirror` for example).
const { code, highlightMode } = oasToSnippet(apiDefinition, operation, formData, auth, language);

Plugins

This library also supports the plugin system that we've built into HTTPSnippet. We have a plugin for generating snippets for ReadMe's API SDK generator and this is how you would integrate and generate snippets for it:

import oasToSnippet from '@readme/oas-to-snippet';
import httpsnippetClientAPIPlugin from 'httpsnippet-client-api';

const snippet = oasToSnippet(
  petstore,
  petstore.operation('/user/login', 'get'),
  formData,
  auth,
  // `[node, api]` is not a standard language in `oas-to-snippet` but is
  // dynamically made available via this loaded plugin.
  ['node', 'api'],
  {
    openapi: {
      registryIdentifier: '@petstore/v2.0#17273l2glm9fq4l5',
    },
    plugins: [httpsnippetClientAPIPlugin],
  },
);

Supported Languages

Since this library uses HTTPSnippet we support most of its languages and their associated targets which are the following:

LanguageAvailable language mode(s)Libraries (if applicable)
CcLibcurl
Clojureclojureclj-http
C++cplusplusLibcurl
C#csharpHttpClient, RestSharp
HTTPhttpHTTP/1.1
GogoNewRequest
JavajavaAsyncHttp, java.net.http, OkHttp, Unirest
JavaScriptjavascriptXMLHttpRequest, Axios, fetch, jQuery
JSONjsonNative JSON
KotlinkotlinOkHttp
Node.jsnodeHTTP, Request, Unirest, Axios, Fetch
Objective-CobjectivecNSURLSession
OCamlocamlCoHTTP
PHPphpcURL, Guzzle, HTTP v1, HTTP v2
PowershellpowershellInvoke-WebRequest, Invoke-RestMethod
PythonpythonRequests
Rrhttr
Rubyrubynet::http
ShellshellcURL, HTTPie, Wget
SwiftswiftURLSession
25.2.3

12 hours ago

25.2.2

12 hours ago

25.2.1

10 days ago

25.2.0

11 days ago

25.1.3

23 days ago

25.1.1

29 days ago

25.1.0

29 days ago

25.1.2

28 days ago

25.0.2

30 days ago

25.0.1

1 month ago

25.0.0

1 month ago

24.0.3

1 month ago

23.0.0

7 months ago

23.1.0

6 months ago

23.2.0

6 months ago

22.1.2

10 months ago

22.1.1

10 months ago

22.1.0

10 months ago

22.1.4

9 months ago

22.1.3

10 months ago

24.0.2

6 months ago

24.0.1

6 months ago

24.0.0

6 months ago

22.0.2

11 months ago

22.0.1

11 months ago

21.1.1

12 months ago

22.0.0

11 months ago

21.0.1

1 year ago

21.1.0

1 year ago

21.0.0

1 year ago

20.0.0

2 years ago

20.1.0

2 years ago

20.1.3

1 year ago

20.1.1

1 year ago

19.2.0

2 years ago

19.1.0

2 years ago

19.0.0

2 years ago

17.0.3

2 years ago

17.0.2

2 years ago

17.0.5

2 years ago

17.0.4

2 years ago

17.0.1

2 years ago

17.0.0

2 years ago

18.0.0

2 years ago

17.1.0

2 years ago

16.0.9

2 years ago

16.0.8

2 years ago

16.0.7

2 years ago

16.0.6

2 years ago

16.0.5

2 years ago

16.0.4

2 years ago

15.0.8

2 years ago

15.1.0

2 years ago

16.0.2

2 years ago

16.0.1

2 years ago

16.0.0

2 years ago

16.0.3

2 years ago

15.0.7

2 years ago

15.0.6

2 years ago

15.0.5

2 years ago

15.0.2

2 years ago

15.0.3

2 years ago

15.0.0

3 years ago

15.0.1

2 years ago

15.0.4

2 years ago

14.3.0

3 years ago

14.1.0

3 years ago

14.2.0

3 years ago

14.2.1

3 years ago

13.6.2

3 years ago

14.0.0

3 years ago

13.6.1

3 years ago

13.6.0

3 years ago

13.5.1

3 years ago

13.5.2

3 years ago

13.5.0

3 years ago

13.4.17

3 years ago

13.4.15

3 years ago

13.4.16

3 years ago

13.4.14

3 years ago

13.4.13

3 years ago

13.4.11

3 years ago

13.4.10

3 years ago

13.4.8

3 years ago

13.4.9

3 years ago

13.4.7

3 years ago

13.3.0

3 years ago

13.4.6

3 years ago

13.4.4

3 years ago

13.4.5

3 years ago

13.4.2

3 years ago

13.2.4

3 years ago

13.4.3

3 years ago

13.4.0

3 years ago

13.2.3

3 years ago

13.2.2

3 years ago

13.2.1

3 years ago

13.2.0

3 years ago

13.1.0

3 years ago

12.2.6

3 years ago

13.0.0

3 years ago

12.2.2

3 years ago

12.2.1

3 years ago

12.2.0

3 years ago

12.0.0

3 years ago

11.2.2

3 years ago

11.2.0

3 years ago

11.1.6

3 years ago

11.1.5

3 years ago

11.1.3

3 years ago

11.1.2

3 years ago

11.1.0

3 years ago

10.1.1

3 years ago

11.0.1

3 years ago

11.0.0

3 years ago

10.1.0

3 years ago

10.0.9

3 years ago

10.0.8

3 years ago

10.0.5

3 years ago

10.0.4

3 years ago

10.0.1

3 years ago

10.0.0

3 years ago

9.3.0

3 years ago

10.0.0-alpha.0

3 years ago

9.2.2

3 years ago

9.2.1

4 years ago

9.2.0

4 years ago

9.1.0

4 years ago

9.0.2

4 years ago

9.0.1

4 years ago

9.0.0

4 years ago

8.1.1

4 years ago

8.1.0

4 years ago

8.0.3

4 years ago

8.0.2

4 years ago

8.0.1

4 years ago

8.0.0

4 years ago

7.6.0

4 years ago

7.5.0

4 years ago

7.4.0

4 years ago

7.3.0

4 years ago

7.2.3

4 years ago

7.2.2

4 years ago

7.2.1

4 years ago

7.2.0

4 years ago

7.1.1

4 years ago

7.1.0

4 years ago

7.0.1

4 years ago

7.0.0

4 years ago

6.16.1

4 years ago

6.15.2

4 years ago

6.15.1

4 years ago

6.15.0

4 years ago

6.14.1

4 years ago

6.14.0

4 years ago

6.13.1

4 years ago

6.13.0

4 years ago

1.0.0

4 years ago