26.0.1 • Published 9 months ago

@readme/oas-to-snippet v26.0.1

Weekly downloads
1,484
License
MIT
Repository
github
Last release
9 months 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, Axios, fetch
Objective-CobjectivecNSURLSession
OCamlocamlCoHTTP
PHPphpcURL, Guzzle, HTTP v1, HTTP v2
PowershellpowershellInvoke-WebRequest, Invoke-RestMethod
PythonpythonRequests
Rrhttr
Rubyrubynet::http
ShellshellcURL, HTTPie, Wget
SwiftswiftURLSession
26.0.1

9 months ago

26.0.0

9 months ago

25.2.20

10 months ago

25.2.19

10 months ago

25.2.18

10 months ago

25.2.17

10 months ago

25.2.16

10 months ago

25.2.11

1 year ago

25.2.10

1 year ago

25.2.15

10 months ago

25.2.14

12 months ago

25.2.13

12 months ago

25.2.12

1 year ago

25.2.6

1 year ago

25.2.8

1 year ago

25.2.7

1 year ago

25.2.9

1 year ago

25.2.4

1 year ago

25.2.5

1 year ago

25.2.3

1 year ago

25.2.2

1 year ago

25.2.1

1 year ago

25.2.0

1 year ago

25.1.3

1 year ago

25.1.1

1 year ago

25.1.0

1 year ago

25.1.2

1 year ago

25.0.2

1 year ago

25.0.1

1 year ago

25.0.0

1 year ago

24.0.3

1 year ago

23.0.0

2 years ago

23.1.0

2 years ago

23.2.0

2 years ago

22.1.2

2 years ago

22.1.1

2 years ago

22.1.0

2 years ago

22.1.4

2 years ago

22.1.3

2 years ago

24.0.2

2 years ago

24.0.1

2 years ago

24.0.0

2 years ago

22.0.2

2 years ago

22.0.1

2 years ago

21.1.1

2 years ago

22.0.0

2 years ago

21.0.1

2 years ago

21.1.0

2 years ago

21.0.0

2 years ago

20.0.0

3 years ago

20.1.0

3 years ago

20.1.3

3 years ago

20.1.1

3 years ago

19.2.0

3 years ago

19.1.0

3 years ago

19.0.0

3 years ago

17.0.3

3 years ago

17.0.2

3 years ago

17.0.5

3 years ago

17.0.4

3 years ago

17.0.1

3 years ago

17.0.0

3 years ago

18.0.0

3 years ago

17.1.0

3 years ago

16.0.9

3 years ago

16.0.8

3 years ago

16.0.7

3 years ago

16.0.6

3 years ago

16.0.5

3 years ago

16.0.4

3 years ago

15.0.8

3 years ago

15.1.0

3 years ago

16.0.2

3 years ago

16.0.1

3 years ago

16.0.0

3 years ago

16.0.3

3 years ago

15.0.7

3 years ago

15.0.6

3 years ago

15.0.5

4 years ago

15.0.2

4 years ago

15.0.3

4 years ago

15.0.0

4 years ago

15.0.1

4 years ago

15.0.4

4 years ago

14.3.0

4 years ago

14.1.0

4 years ago

14.2.0

4 years ago

14.2.1

4 years ago

13.6.2

4 years ago

14.0.0

4 years ago

13.6.1

4 years ago

13.6.0

4 years ago

13.5.1

4 years ago

13.5.2

4 years ago

13.5.0

4 years ago

13.4.17

4 years ago

13.4.15

4 years ago

13.4.16

4 years ago

13.4.14

4 years ago

13.4.13

4 years ago

13.4.11

4 years ago

13.4.10

4 years ago

13.4.8

4 years ago

13.4.9

4 years ago

13.4.7

4 years ago

13.3.0

4 years ago

13.4.6

4 years ago

13.4.4

4 years ago

13.4.5

4 years ago

13.4.2

4 years ago

13.2.4

4 years ago

13.4.3

4 years ago

13.4.0

4 years ago

13.2.3

4 years ago

13.2.2

4 years ago

13.2.1

4 years ago

13.2.0

4 years ago

13.1.0

4 years ago

12.2.6

4 years ago

13.0.0

4 years ago

12.2.2

4 years ago

12.2.1

4 years ago

12.2.0

4 years ago

12.0.0

4 years ago

11.2.2

4 years ago

11.2.0

4 years ago

11.1.6

4 years ago

11.1.5

4 years ago

11.1.3

4 years ago

11.1.2

4 years ago

11.1.0

4 years ago

10.1.1

4 years ago

11.0.1

4 years ago

11.0.0

4 years ago

10.1.0

4 years ago

10.0.9

5 years ago

10.0.8

5 years ago

10.0.5

5 years ago

10.0.4

5 years ago

10.0.1

5 years ago

10.0.0

5 years ago

9.3.0

5 years ago

10.0.0-alpha.0

5 years ago

9.2.2

5 years ago

9.2.1

5 years ago

9.2.0

5 years ago

9.1.0

5 years ago

9.0.2

5 years ago

9.0.1

5 years ago

9.0.0

5 years ago

8.1.1

5 years ago

8.1.0

5 years ago

8.0.3

5 years ago

8.0.2

5 years ago

8.0.1

5 years ago

8.0.0

5 years ago

7.6.0

5 years ago

7.5.0

5 years ago

7.4.0

5 years ago

7.3.0

5 years ago

7.2.3

5 years ago

7.2.2

5 years ago

7.2.1

5 years ago

7.2.0

5 years ago

7.1.1

5 years ago

7.1.0

5 years ago

7.0.1

5 years ago

7.0.0

5 years ago

6.16.1

5 years ago

6.15.2

5 years ago

6.15.1

5 years ago

6.15.0

5 years ago

6.14.1

5 years ago

6.14.0

5 years ago

6.13.1

5 years ago

6.13.0

5 years ago

1.0.0

5 years ago