Using Swagger UI Try It Out function on Redoc
npm install redoc-try-it-out
It's extends Redoc adding the Swagger's Try Out feature.
Online preview Pet Store live demo.
After importing the script bundle, just configure and init it.
``html`
| Option | Description | Type | Note |
| ----------------------- | ------------------------------- | ------------------------------------------------- | ----------------------------------------- |
| docUrl | URL swagger's spec file | string | |
| cfg | Redoc try it out config options | RedocTryItOutOptions | See options table |
| element (optional) | Redoc wrapper container | HTMLElement | If not set, a wrapper will be created |
RedocTryItOutOptions extends RedocOptions, documented on Redoc documentation
| Option | Description | Type | Default |
| ------------------------- | ------------------------------------------------------------- | ------------------------------------------------- | ----------------------------------------- |
| tryItOutEnabled | Enable/Disable Try Out feature | boolean | false |'try-out-wrapper'
| tryItBoxContainerId | Id of the element created dynamically as Try Out container | string | |'redoc-container'
| containerId | Redoc wrapper container id (used when no element is provided) | string | |'[data-section-id]'
| operationBoxSelector | Redoc operation box selector | string | |'try'
| selectedOperationClass | Class name added into selected operation | string | | '2.0.0-rc.56'
| redocVersion | Redoc version | string | |
| authBtn | Auth Button Options | AuthBtnOptions | See the table |
| tryBtn | Try Out Button Options | TryBtnOptions | See the table |
| stylerMatcher | Styler Matcher Options | StyleMatcherOptions | See the table |
| swaggerOptions | Swagger Options | SwaggerOptions | See the table |
| dependenciesVersions | Set of dependencies version | DependenciesVersions | See the table |
| Option | Description | Type | Default |
| ------------- | ------------------------------------------------- | --------- | ------------- |
| posSelector | Selector where the button will be added after of | string | 'h1:eq(0)' |'AUTHORIZE'
| text | The button text | string | |'_auth-btn'
| className | The button class name used tracking the element | string | |
| Option | Description | Type | Default |
| ----------------- | --------------------------------------------------------- | --------- | ------------- |
| siblingSelector | Selector where the button will be added as sibling of | string | '.http-verb'|'TRY OUT'
| text | The button text | string | |'tryBtn'
| className | The button class name used tracking the element | string | |'selected'
| selectedClassName | The button class name used tracking the selected element | string | |
#### Style matcher is a utility used to clone Redoc style into Swagger, avoiding layout discrepancies
| Option | Type | Default |
| ----------------------------------------- | ------ |--------------------------------------------------------------------------------------------- |
| informationContainerTargetSelector | string | '.swagger-ui .information-container' | '.swagger-ui .scheme-container'
| schemeContainerTargetSelector | string | |'.swagger-ui .models'
| modelsContainerTargetSelector | string | |'.swagger-ui input[type=text]'
| inputTargetSelector | string | |'.swagger-ui .opblock select'
| selectTargetSelector | string | |'.swagger-ui .opblock textarea'
| textAreaTargetSelector | string | |'.swagger-ui .opblock p'
| paragraphTargetSelector | string | |'.swagger-ui .opblock .btn.execute'
| executeBtnTargetSelector | string | |'.swagger-ui .opblock .opblock-body .responses-inner'
| responseContainerTargetSelector | string | |'.swagger-ui .opblock .responses-inner > div > h4'
| responseTitleTargetSelector | string | |'.swagger-ui .opblock .responses-inner h4'
| responseHeaderTargetSelector | string | |'.swagger-ui .opblock .responses-inner > .responses-table'
| responseTableTargetSelector | string | |'.swagger-ui .opblock .responses-wrapper'
| responseWrapperTargetSelector | string | |'.swagger-ui .opblock .btn-group + .responses-wrapper'
| responseWrapperResultTargetSelector | string | |'.swagger-ui .opblock .microlight'
| responseMicrolightTargetSelector | string | |'.swagger-ui .opblock .microlight code'
| responseCodeTargetSelector | string | |'.swagger-ui .opblock .responses-inner .copy-to-clipboard'
| responseClipboardTargetSelector | string | |'.swagger-ui .opblock .responses-inner .copy-to-clipboard button'
| responseClipboardBtnTargetSelector | string | |'.swagger-ui .opblock .responses-inner .curl-command .copy-to-clipboard'
| responseCurlClipboardTargetSelector | string | |'.swagger-ui .opblock .responses-inner .download-contents'
| responseDownloadTargetSelector | string | |'.swagger-ui .opblock .responses-inner .responses-header td.col_header'
| serverResponseHeaderTargetSelector | string | |'.swagger-ui .opblock .responses-inner .response .response-col_status'
| serverResponseStatusTargetSelector | string | |'.swagger-ui .opblock .responses-inner .response .response-col_description'
| serverResponseDescriptionTargetSelector | string | |'.swagger-ui .opblock .responses-inner .response h5'
| serverResponseSubHeaderTargetSelector | string | |'.swagger-ui .opblock .btn-group .btn-clear'
| clearBtnTargetSelector | string | |'.swagger-ui .opblock-tag[data-tag]'
| operationTagTargetSelector | string | |'.swagger-ui .opblock .opblock-section-header'
| operationHeaderContainerTargetSelector | string | |'.swagger-ui .opblock .opblock-section-header h4'
| operationHeaderTargetSelector | string | |'.swagger-ui .opblock .opblock-section-header h4 span::after'
| operationHeaderDecorationTargetSelector | string | |'.swagger-ui .operation-tag-content div.try-out'
| operationTryOutTargetSelector | string | |'.swagger-ui .opblock .opblock-body .opblock-description-wrapper'
| descriptionContainerTargetSelector | string | |'.swagger-ui .operation-tag-content div.opblock .opblock-summary'
| summaryTargetSelector | string | |'.swagger-ui .dialog-ux .modal-ux-header'
| modalHeaderContainerTargetSelector | string | |'.swagger-ui .dialog-ux .modal-ux-header h3'
| modalHeaderTargetSelector | string | |'.swagger-ui .dialog-ux .modal-ux-content h4'
| modalTitleTargetSelector | string | |'.swagger-ui .dialog-ux .modal-ux-content .wrapper code'
| modalTitleCodeTargetSelector | string | |'.swagger-ui .modal-ux label'
| modalLabelTargetSelector | string | |'.swagger-ui .modal-ux code'
| modalCodeTargetSelector | string | |'.swagger-ui .modal-ux button'
| modalBtnTargetSelector | string | |'.swagger-ui .opblock .table-container'
| parametersTableContainerTargetSelector | string | |'.swagger-ui .opblock .table-container table.parameters thead'
| parametersHeadTargetSelector | string | |'.swagger-ui .opblock .table-container table.parameters .parameter__name'
| parameterNameFieldTargetSelector | string | |'.swagger-ui .opblock .table-container table.parameters .parameter__type'
| parameterTypeFieldTargetSelector | string | |'.swagger-ui .opblock .table-container table.parameters .parameter__deprecated'
| parameterDeprecatedTargetSelector | string | |'.swagger-ui .opblock .table-container table.parameters .parameter__in'
| parameterSourceTargetSelector | string | |'.swagger-ui .opblock .table-container table.parameters .parameter__name.required span'
| parameterRequiredMarkerTargetSelector | string | |'.swagger-ui .opblock .table-container table.parameters .parameter__name.required::after'
| parameterRequiredTargetSelector | string | |'.api-content'
| apiContentSourceSelector | string | |'[kind=field] ~ td'
| inputSourceSelector | string | |'code'
| codeSourceSelector | string | |'[data-section-id] [role=tabpanel]'
| codeBoxSourceSelector | string | |'[data-section-id] > div > div'
| dataSectionSourceSelector | string | |'[kind=field]'
| fieldSourceSelector | string | |'[kind=field] div'
| requiredFieldSourceSelector | string | |'[kind=field]:first span:first-child'
| fieldMarkerSourceSelector | string | |'h2'
| sanSerifFontSourceSelector | string | |'[kind=field] span'
| alternativeMonospaceFontSourceSelector | string | |'h5'
| alternativeSansSerifSourceSelector | string | |'h2'
| h2SourceSelector | string | |'h3'
| h3SourceSelector | string | |'h5'
| h5SourceSelector | string | |'[kind=field] ~ td'
| labelSourceSelector | string | |'[kind=field] ~ td span'
| typeSourceSelector | string | |'[role=tabpanel] button'
| btnSourceSelector | string | |'h5'
| defaultBorderColorSelector | string | |'a[href*="swagger.json"]:eq(0)'
| authBtnSourceSelector | string | |'[data-section-id] .http-verb'
| httpVerbSourceSelector | string | |
| Option | Description | Type | Default |
| --------------------------------- | --------------------------------------------------------- | --------- | ------------------------------------------------------------------------- |
| url | URL swagger's spec file | string | RedocTryItOut.docUrl |'#swagger-ui'
| dom_id | Swagger wrapper container id | string | |'.swagger-ui .auth-wrapper .authorize'
| authorizeBtnSelector | The authorize button selector | string | |'.swagger-ui .dialog-ux .modal-ux'
| authorizeModalSelector | The authorize modal selector | string | |'.swagger-ui .auth-btn-wrapper .btn-done'
| authorizeDoneBtnSelector | The authorize modal done button selector | string | |'.swagger-ui .dialog-ux .modal-ux-header .close-modal'
| authorizeModalCloseBtnSelector | The authorize modal close button selector | string | |'.swagger-ui .opblock'
| operationContainerSelector | The operation container selector | string | |'.swagger-ui .opblock-tag-section'
| operationSectionContainerSelector | The operation section container selector | string | |'.swagger-ui .opblock .opblock-summary-{method} [data-path="{api}"]'
| operationSummaryPatternSelector | The operation summary pattern selector | string | |'.swagger-ui .wrapper'
| wrapperSelector | The wrapper selector | string | |'hide'
| hideClass | The hide class name added to hide swagger | string | |'show'
| showClass | The show class name added to show swagger | string | |'auth-modal'
| authModalClass | The modal class name added to show auth modal | string | |'opened-shadow'
| selectedOperationContainerClass | The class name added mark an operation box as selected | string | |CallbackFunction
| onComplete | The function called when swagger load is completed | Function | |'3.48.0'
| version | The swagger version | string | |
| Option | Description | Type | Default |
| ----------------- | ------------------------- | --------- | --------- |
| jquery | JQuery version | string | '3.6.0' |'2.1.2'` |
| jqueryScrollTo | JQuery ScrollTo version | string |
It's based on wll8.github.io/redoc-try work.
Bellow are a list of changes, some might go undocumented
- 1.0.0 - First release
- 1.0.1 - Remove png from package
- 1.0.2 - Fix main file
- 1.0.3 - Add live demo and fix README
- 1.0.4 - Fix live demo page url
- 1.0.5 - Export interfaces
- 1.0.6 - Fix configuration
- 1.0.7 - Fix exports
- 1.0.8 - Fix redoc options
- 1.0.9 - Export JS name files constants
- Finish up the documentation
- Add Unittests