Generates code snippets in Swagger UI.
This package takes as input an HTTP Request. It translates the request into an HTTP Archive 1.2 request object. It uses the HTTP Snippet library to generate code snippets for every API endpoint (URL path + HTTP method) defined in the specification in various languages & tools (cURL
, Node
, Python
, Ruby
, Java
, Go
, C#
...), or for selected endpoints.
This Repository is forked from ErikWittern/openapi-snippet
- Generate request snippets from request data.
- Fix style of RequestSnippets in SwaggerUI.
npm i swagger-snippet-generator
Include the swagger-snippet-generator.min.js file in your HTML page:
<script charset="UTF-8" src="/path/to/swagger-snippet-generator.min.js" type="text/javascript"></script>
Use Swagger Snippet Generator, which now defines the global variable SwaggerSnippetGenerator
:
const snippetTargets = [
{
title: 'python (http.client)',
target: 'python'
},
{
target: 'python_requests'
}
];
SwaggerUIBundle({
...
plugins: [
SwaggerSnippetGenerator(snippetTargets)
],
requestSnippetsEnabled: true
...
});
Clone this repository. Install required dependencies:
npm i
Build a minified version of Swagger Snippet Generator (swagger-snippet-generator.min.js):
npm run build
Live Demo in sample HTML
import SwaggerUI from 'swagger-ui';
import SwaggerSnippetGenerator from 'swagger-snippet-generator';
// define array of SnippetTarget
const snippetTargets = [
{
title: 'python (http.client)',
target: 'python'
},
{
target: 'python_requests'
}
];
SwaggerUI({
dom_id: '#swagger-ui',
plugins: [
SwaggerSnippetGenerator(snippetTargets)
],
requestSnippetsEnabled: true
});
Define target as SnippetTarget object
SnippetTarget = {
target: 'Target language and library (see below)',
title: '(Optional) Button title. Generate from target if undefined',
syntax: '(Optional) Syntax highlighting. Detect from target if undefined.'
};
Currently, Swagger Snippet Generator supports the following targets (depending on the HTTP Snippet library):
c_libcurl
(default)csharp_restsharp
(default)csharp_httpclient
go_native
(default)java_okhttp
java_unirest
(default)javascript_jquery
javascript_xhr
(default)node_native
(default)node_request
node_unirest
objc_nsurlsession
(default)ocaml_cohttp
(default)php_curl
(default)php_http1
php_http2
python_python3
(default)python_requests
ruby_native
(default)shell_curl
(default)shell_httpie
shell_wget
swift_nsurlsession
(default)
If only the language is provided (e.g., c
), the default library will be selected.
License: MIT