redoc 2.0.0-alpha.7 → 2.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +627 -0
- package/LICENSE +1 -1
- package/README.md +71 -40
- package/bundles/bbd40b5d662c7b796349.worker.js.map +1 -0
- package/bundles/redoc.lib.js +9211 -11004
- package/bundles/redoc.lib.js.map +1 -1
- package/bundles/redoc.standalone.js +76 -38
- package/bundles/redoc.standalone.js.map +1 -1
- package/package.json +155 -90
- package/typings/common-elements/CopyButtonWrapper.d.ts +16 -0
- package/typings/common-elements/PrismDiv.d.ts +1 -0
- package/typings/common-elements/Tooltip.d.ts +8 -0
- package/typings/common-elements/dropdown.d.ts +13 -0
- package/typings/common-elements/fields-layout.d.ts +14 -0
- package/typings/common-elements/fields.d.ts +14 -0
- package/typings/common-elements/headers.d.ts +6 -0
- package/{src/common-elements/index.ts → typings/common-elements/index.d.ts} +2 -0
- package/typings/common-elements/linkify.d.ts +14 -0
- package/typings/common-elements/mixins.d.ts +1 -0
- package/typings/common-elements/panels.d.ts +10 -0
- package/typings/common-elements/perfect-scrollbar.d.ts +19 -0
- package/typings/common-elements/samples.d.ts +2 -0
- package/typings/common-elements/schema.d.ts +7 -0
- package/typings/common-elements/shelfs.d.ts +16 -0
- package/typings/common-elements/tabs.d.ts +4 -0
- package/typings/components/ApiInfo/ApiInfo.d.ts +9 -0
- package/typings/components/ApiInfo/index.d.ts +1 -0
- package/typings/components/ApiInfo/styled.elements.d.ts +6 -0
- package/typings/components/ApiLogo/ApiLogo.d.ts +7 -0
- package/typings/components/ApiLogo/styled.elements.d.ts +3 -0
- package/typings/components/ContentItems/ContentItems.d.ts +22 -0
- package/typings/components/DropdownOrLabel/DropdownOrLabel.d.ts +7 -0
- package/typings/components/Endpoint/Endpoint.d.ts +15 -0
- package/typings/components/Endpoint/styled.elements.d.ts +16 -0
- package/typings/components/ErrorBoundary.d.ts +8 -0
- package/typings/components/ExternalDocumentation/ExternalDocumentation.d.ts +8 -0
- package/typings/components/Fields/EnumValues.d.ts +8 -0
- package/typings/components/Fields/Extensions.d.ts +9 -0
- package/typings/components/Fields/Field.d.ts +14 -0
- package/typings/components/Fields/FieldContstraints.d.ts +7 -0
- package/typings/components/Fields/FieldDetail.d.ts +8 -0
- package/typings/components/Fields/FieldDetails.d.ts +5 -0
- package/typings/components/JsonViewer/JsonViewer.d.ts +19 -0
- package/typings/components/JsonViewer/index.d.ts +1 -0
- package/typings/components/JsonViewer/style.d.ts +1 -0
- package/typings/components/Loading/Loading.d.ts +7 -0
- package/typings/components/Loading/Spinner.svg.d.ts +4 -0
- package/typings/components/Markdown/AdvancedMarkdown.d.ts +10 -0
- package/typings/components/Markdown/Markdown.d.ts +16 -0
- package/typings/components/Markdown/SanitizedMdBlock.d.ts +5 -0
- package/typings/components/Markdown/styled.elements.d.ts +7 -0
- package/typings/components/MediaTypeSwitch/MediaTypesSwitch.d.ts +18 -0
- package/typings/components/Operation/Operation.d.ts +8 -0
- package/typings/components/OptionsProvider.d.ts +5 -0
- package/typings/components/Parameters/Parameters.d.ts +10 -0
- package/typings/components/Parameters/ParametersGroup.d.ts +9 -0
- package/typings/components/PayloadSamples/MediaTypeSamples.d.ts +8 -0
- package/typings/components/PayloadSamples/PayloadSamples.d.ts +9 -0
- package/typings/components/PayloadSamples/styled.elements.d.ts +4 -0
- package/typings/components/Redoc/Redoc.d.ts +14 -0
- package/typings/components/Redoc/styled.elements.d.ts +3 -0
- package/typings/components/RedocStandalone.d.ts +18 -0
- package/typings/components/RequestSamples/RequestSamples.d.ts +9 -0
- package/typings/components/ResponseSamples/ResponseSamples.d.ts +9 -0
- package/typings/components/Responses/Response.d.ts +8 -0
- package/typings/components/Responses/ResponseDetails.d.ts +8 -0
- package/typings/components/Responses/ResponseHeaders.d.ts +8 -0
- package/typings/components/Responses/ResponseTitle.d.ts +13 -0
- package/typings/components/Responses/ResponsesList.d.ts +8 -0
- package/typings/components/Responses/styled.elements.d.ts +4 -0
- package/typings/components/Schema/ArraySchema.d.ts +5 -0
- package/typings/components/Schema/DiscriminatorDropdown.d.ts +13 -0
- package/typings/components/Schema/ObjectSchema.d.ts +13 -0
- package/typings/components/Schema/OneOfSchema.d.ts +15 -0
- package/typings/components/Schema/Schema.d.ts +13 -0
- package/typings/components/Schema/index.d.ts +5 -0
- package/typings/components/SearchBox/SearchBox.d.ts +28 -0
- package/typings/components/SearchBox/styled.elements.d.ts +11 -0
- package/typings/components/SecurityRequirement/SecurityRequirement.d.ts +14 -0
- package/typings/components/SecuritySchemes/SecuritySchemes.d.ts +16 -0
- package/typings/components/SelectOnClick/SelectOnClick.d.ts +6 -0
- package/typings/components/SideMenu/MenuItem.d.ts +19 -0
- package/typings/components/SideMenu/MenuItems.d.ts +13 -0
- package/typings/components/SideMenu/SideMenu.d.ts +11 -0
- package/typings/components/SideMenu/index.d.ts +4 -0
- package/typings/components/SideMenu/styled.elements.d.ts +30 -0
- package/typings/components/SourceCode/SourceCode.d.ts +11 -0
- package/typings/components/StickySidebar/ChevronSvg.d.ts +3 -0
- package/typings/components/StickySidebar/StickyResponsiveSidebar.d.ts +16 -0
- package/typings/components/StoreBuilder.d.ts +37 -0
- package/typings/components/index.d.ts +29 -0
- package/typings/index.d.ts +6 -0
- package/typings/services/AppStore.d.ts +42 -0
- package/typings/services/ClipboardService.d.ts +8 -0
- package/typings/services/HistoryService.d.ts +12 -0
- package/typings/services/MarkdownRenderer.d.ts +35 -0
- package/typings/services/MarkerService.d.ts +11 -0
- package/typings/services/MenuBuilder.d.ts +54 -0
- package/typings/services/MenuStore.d.ts +102 -0
- package/typings/services/OpenAPIParser.d.ts +52 -0
- package/typings/services/RedocNormalizedOptions.d.ts +46 -0
- package/typings/services/ScrollService.d.ts +17 -0
- package/typings/services/SearchStore.d.ts +14 -0
- package/typings/services/SearchWorker.worker.d.ts +24 -0
- package/typings/services/SpecStore.d.ts +18 -0
- package/{src/services/index.ts → typings/services/index.d.ts} +4 -0
- package/typings/services/models/ApiInfo.d.ts +16 -0
- package/typings/services/models/Example.d.ts +9 -0
- package/typings/services/models/Field.d.ts +24 -0
- package/typings/services/models/Group.model.d.ts +26 -0
- package/typings/services/models/MediaContent.d.ts +25 -0
- package/typings/services/models/MediaType.d.ts +18 -0
- package/typings/services/models/Operation.d.ts +53 -0
- package/typings/services/models/RequestBody.d.ts +10 -0
- package/typings/services/models/Response.d.ts +16 -0
- package/typings/services/models/Schema.d.ts +50 -0
- package/typings/services/models/SecurityRequirement.d.ts +11 -0
- package/typings/services/models/SecuritySchemes.d.ts +25 -0
- package/{src/services/models/index.ts → typings/services/models/index.d.ts} +0 -1
- package/typings/styled-components.d.ts +15 -0
- package/typings/styled-patch.d.ts +21 -0
- package/typings/theme.d.ts +135 -0
- package/{src/types/components.ts → typings/types/components.d.ts} +0 -0
- package/typings/types/index.d.ts +8 -0
- package/{src/types/open-api.ts → typings/types/open-api.d.ts} +75 -65
- package/typings/utils/JsonPointer.d.ts +51 -0
- package/typings/utils/debug.d.ts +2 -0
- package/typings/utils/decorators.d.ts +1 -0
- package/typings/utils/dom.d.ts +8 -0
- package/typings/utils/helpers.d.ts +36 -0
- package/typings/utils/highlight.d.ts +30 -0
- package/{src/utils/index.ts → typings/utils/index.d.ts} +3 -2
- package/typings/utils/jsonToHtml.d.ts +1 -0
- package/typings/utils/loadAndBundleSpec.d.ts +3 -0
- package/typings/utils/memoize.d.ts +1 -0
- package/typings/utils/openapi.d.ts +28 -0
- package/.editorconfig +0 -10
- package/.npmignore +0 -2
- package/.travis.yml +0 -29
- package/.vscode/settings.json +0 -3
- package/custom.d.ts +0 -22
- package/cypress.json +0 -8
- package/demo/big-openapi.json +0 -27362
- package/demo/index.html +0 -25
- package/demo/openapi.yaml +0 -949
- package/demo/playground/hmr-playground.tsx +0 -52
- package/demo/playground/index.html +0 -24
- package/demo/swagger.yaml +0 -865
- package/docker-compose.yml +0 -8
- package/docs/images/code-samples-demo.gif +0 -0
- package/docs/images/discriminator-demo.gif +0 -0
- package/docs/images/nested-demo.gif +0 -0
- package/docs/images/progressive-loading-demo.gif +0 -0
- package/docs/images/redoc-logo.png +0 -0
- package/docs/redoc-vendor-extensions.md +0 -266
- package/docs/security-definitions-injection.md +0 -19
- package/e2e/.build/standalone.e2e.js +0 -25
- package/e2e/.build/standalone.e2e.js.map +0 -1
- package/e2e/standalone-compatibility.html +0 -8
- package/e2e/standalone.e2e.ts +0 -29
- package/e2e/standalone.html +0 -8
- package/empty.js +0 -1
- package/perf/index.tsx +0 -27
- package/perf/mount-time.js +0 -73
- package/src/common-elements/dropdown.ts +0 -112
- package/src/common-elements/fields-layout.ts +0 -156
- package/src/common-elements/fields.ts +0 -79
- package/src/common-elements/headers.ts +0 -39
- package/src/common-elements/linkify.ts +0 -31
- package/src/common-elements/mixins.ts +0 -15
- package/src/common-elements/panels.ts +0 -22
- package/src/common-elements/perfect-scrollbar.ts +0 -10
- package/src/common-elements/schema.ts +0 -56
- package/src/common-elements/shelfs.tsx +0 -57
- package/src/common-elements/tabs.ts +0 -88
- package/src/components/ApiInfo/ApiInfo.tsx +0 -117
- package/src/components/ApiInfo/styled.elements.ts +0 -47
- package/src/components/ApiLogo/ApiLogo.tsx +0 -24
- package/src/components/ApiLogo/styled.elements.ts +0 -12
- package/src/components/ContentItems/ContentItems.tsx +0 -85
- package/src/components/DropdownOrLabel/DropdownOrLabel.tsx +0 -16
- package/src/components/Endpoint/Endpoint.tsx +0 -76
- package/src/components/Endpoint/styled.elements.ts +0 -81
- package/src/components/ErrorBoundary.tsx +0 -40
- package/src/components/Fields/EnumValues.tsx +0 -23
- package/src/components/Fields/Field.tsx +0 -58
- package/src/components/Fields/FieldContstraints.tsx +0 -20
- package/src/components/Fields/FieldDetail.tsx +0 -19
- package/src/components/Fields/FieldDetails.tsx +0 -58
- package/src/components/JsonViewer/JsonViewer.tsx +0 -49
- package/src/components/JsonViewer/style.ts +0 -111
- package/src/components/Loading/Loading.tsx +0 -28
- package/src/components/Loading/Spinner.svg.tsx +0 -36
- package/src/components/Markdown/Markdown.tsx +0 -88
- package/src/components/Markdown/styles.ts +0 -116
- package/src/components/MediaTypeSwitch/MediaTypesSwitch.tsx +0 -47
- package/src/components/Operation/Operation.tsx +0 -69
- package/src/components/OptionsProvider.ts +0 -34
- package/src/components/Parameters/Parameters.tsx +0 -73
- package/src/components/Parameters/ParametersGroup.tsx +0 -34
- package/src/components/PayloadSamples/MediaTypeSamples.tsx +0 -44
- package/src/components/PayloadSamples/PayloadSamples.tsx +0 -30
- package/src/components/PayloadSamples/styled.elements.ts +0 -35
- package/src/components/Redoc/Redoc.tsx +0 -48
- package/src/components/Redoc/elements.tsx +0 -41
- package/src/components/RedocStandalone.tsx +0 -58
- package/src/components/RequestSamples/RequestSamples.tsx +0 -52
- package/src/components/ResponseSamples/ResponseSamples.tsx +0 -59
- package/src/components/Responses/Response.tsx +0 -58
- package/src/components/Responses/ResponseHeaders.tsx +0 -30
- package/src/components/Responses/ResponseTitle.tsx +0 -34
- package/src/components/Responses/ResponsesList.tsx +0 -33
- package/src/components/Responses/styled.elements.ts +0 -40
- package/src/components/Schema/ArraySchema.tsx +0 -18
- package/src/components/Schema/DiscriminatorDropdown.tsx +0 -54
- package/src/components/Schema/ObjectSchema.tsx +0 -91
- package/src/components/Schema/OneOfSchema.tsx +0 -33
- package/src/components/Schema/Schema.tsx +0 -77
- package/src/components/Schema/__tests__/DiscriminatorDropdown.test.tsx +0 -50
- package/src/components/Schema/__tests__/__snapshots__/DiscriminatorDropdown.test.tsx.snap +0 -1371
- package/src/components/Schema/__tests__/fixtures/simple-discriminator.json +0 -49
- package/src/components/Schema/index.ts +0 -1
- package/src/components/SecurityRequirement/SecuirityRequirement.tsx +0 -72
- package/src/components/SecuritySchemes/SecuritySchemes.tsx +0 -136
- package/src/components/SelectOnClick/SelectOnClick.tsx +0 -18
- package/src/components/SideMenu/MenuItem.tsx +0 -60
- package/src/components/SideMenu/MenuItems.tsx +0 -29
- package/src/components/SideMenu/SideMenu.tsx +0 -34
- package/src/components/SideMenu/styled.elements.ts +0 -141
- package/src/components/SourceCode/SourceCode.tsx +0 -22
- package/src/components/StickySidebar/StickySidebar.tsx +0 -71
- package/src/components/StoreProvider.ts +0 -68
- package/src/components/index.ts +0 -10
- package/src/index.ts +0 -2
- package/src/polyfills.ts +0 -9
- package/src/services/AppStore.ts +0 -77
- package/src/services/ClipboardService.ts +0 -85
- package/src/services/HistoryService.ts +0 -73
- package/src/services/MarkdownRenderer.ts +0 -187
- package/src/services/MenuBuilder.ts +0 -204
- package/src/services/MenuStore.ts +0 -236
- package/src/services/OpenAPIParser.ts +0 -257
- package/src/services/RedocNormalizedOptions.ts +0 -101
- package/src/services/ScrollService.ts +0 -73
- package/src/services/SpecStore.ts +0 -45
- package/src/services/__tests__/__snapshots__/prism.test.ts.snap +0 -3
- package/src/services/__tests__/history.service.test.ts +0 -25
- package/src/services/__tests__/models/Response.test.ts +0 -35
- package/src/services/__tests__/prism.test.ts +0 -19
- package/src/services/models/ApiInfo.ts +0 -39
- package/src/services/models/Example.ts +0 -14
- package/src/services/models/Field.ts +0 -48
- package/src/services/models/Group.model.ts +0 -58
- package/src/services/models/MediaContent.ts +0 -52
- package/src/services/models/MediaType.ts +0 -66
- package/src/services/models/Operation.ts +0 -158
- package/src/services/models/RequestBody.ts +0 -25
- package/src/services/models/Response.ts +0 -51
- package/src/services/models/Schema.ts +0 -257
- package/src/services/models/SecurityRequirement.ts +0 -27
- package/src/services/models/SecuritySchemes.ts +0 -66
- package/src/services/models/types.ts +0 -4
- package/src/setupTests.ts +0 -5
- package/src/standalone.tsx +0 -77
- package/src/styled-components.ts +0 -26
- package/src/theme.ts +0 -61
- package/src/types/index.ts +0 -5
- package/src/utils/JsonPointer.ts +0 -92
- package/src/utils/__tests__/helpers.test.ts +0 -61
- package/src/utils/__tests__/openapi.test.ts +0 -186
- package/src/utils/__tests__/styled.test.ts +0 -19
- package/src/utils/dom.ts +0 -25
- package/src/utils/helpers.ts +0 -116
- package/src/utils/highlight.ts +0 -58
- package/src/utils/jsonToHtml.ts +0 -112
- package/src/utils/loadAndBundleSpec.ts +0 -29
- package/src/utils/openapi.ts +0 -165
- package/src/utils/styled.ts +0 -16
- package/tsconfig.e2e.json +0 -31
- package/tsconfig.json +0 -45
- package/webpack.config.ts +0 -141
- package/yarn.lock +0 -7599
package/README.md
CHANGED
|
@@ -1,21 +1,19 @@
|
|
|
1
|
-
<
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img alt="ReDoc logo" src="https://raw.githubusercontent.com/Rebilly/ReDoc/master/docs/images/redoc-logo.png" width="400px" />
|
|
2
3
|
|
|
3
|
-
**OpenAPI/Swagger-generated API Reference Documentation**
|
|
4
|
+
**OpenAPI/Swagger-generated API Reference Documentation**
|
|
4
5
|
|
|
5
|
-
[](https://travis-ci.org/Rebilly/ReDoc) [](https://coveralls.io/github/Rebilly/ReDoc?branch=master) [](https://travis-ci.org/Rebilly/ReDoc) [](https://coveralls.io/github/Rebilly/ReDoc?branch=master) [](https://david-dm.org/Rebilly/ReDoc) [](https://david-dm.org/Rebilly/ReDoc#info=devDependencies) [](https://www.npmjs.com/package/redoc) [](https://github.com/Rebilly/ReDoc/blob/master/LICENSE)
|
|
6
7
|
|
|
7
|
-
[](https://cdn.jsdelivr.net/npm/redoc/bundles/redoc.standalone.js) [](https://www.npmjs.com/package/redoc) [](https://www.jsdelivr.com/package/npm/redoc) [](https://hub.docker.com/r/redocly/redoc/)
|
|
8
9
|
|
|
9
|
-
**REACT-REWRITE: WORK IN PROGRESS**
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
**This is README for `2.0` version of ReDoc (React based). README for `1.x` version is on the branch [v1.x](https://github.com/Rebilly/ReDoc/tree/v1.x)**
|
|
12
14
|
|
|
13
|
-
```shell
|
|
14
|
-
yarn install
|
|
15
|
-
npm start
|
|
16
|
-
```
|
|
17
15
|
|
|
18
|
-

|
|
16
|
+

|
|
19
17
|
|
|
20
18
|
## [Live demo](http://rebilly.github.io/ReDoc/)
|
|
21
19
|
|
|
@@ -23,32 +21,34 @@ npm start
|
|
|
23
21
|
|
|
24
22
|
## Features
|
|
25
23
|
- Extremely easy deployment
|
|
24
|
+
- [redoc-cli](https://github.com/Rebilly/ReDoc/blob/master/cli/README.md) with ability to bundle your docs into **zero-dependency** HTML file
|
|
25
|
+
- Server Side Rendering ready
|
|
26
26
|
- The widest OpenAPI v2.0 features support (yes, it supports even `discriminator`) <br>
|
|
27
27
|

|
|
28
|
+
- OpenAPI 3.0 support
|
|
28
29
|
- Neat **interactive** documentation for nested objects <br>
|
|
29
30
|

|
|
30
31
|
- Code samples support (via vendor extension) <br>
|
|
31
32
|

|
|
32
|
-
- Progressive loading with `lazy-rendering` options <br>
|
|
33
|
-

|
|
34
33
|
- Responsive three-panel design with menu/scrolling synchronization
|
|
35
34
|
- Integrate API Introduction into side menu - ReDoc takes advantage of markdown headings from OpenAPI description field. It pulls them into side menu and also supports deep linking.
|
|
36
35
|
- High-level grouping in side-menu via [`x-tagGroups`](docs/redoc-vendor-extensions.md#x-tagGroups) vendor extension
|
|
37
|
-
-
|
|
36
|
+
- Simple integration with `create-react-app` ([sample](https://github.com/APIs-guru/create-react-app-redoc))
|
|
37
|
+
- Branding/customizations via [`theme` option](#redoc-options-object)
|
|
38
38
|
|
|
39
39
|
## Roadmap
|
|
40
40
|
- [x] ~~[OpenAPI v3.0 support](https://github.com/Rebilly/ReDoc/issues/312)~~
|
|
41
41
|
- [x] ~~performance optimizations~~
|
|
42
42
|
- [x] ~~better navigation (menu improvements + search)~~
|
|
43
43
|
- [x] ~~React rewrite~~
|
|
44
|
+
- [x] ~~docs pre-rendering (performance and SEO)~~
|
|
44
45
|
- [ ] ability to simple branding/styling
|
|
45
|
-
- [ ] docs pre-rendering (performance and SEO)
|
|
46
46
|
- [ ] built-in API Console
|
|
47
47
|
|
|
48
48
|
## Releases
|
|
49
|
-
**Important:** all the 2.x releases are deployed to npm and can be used via
|
|
50
|
-
- particular release, e.g. `v2.0.0-alpha.
|
|
51
|
-
- `
|
|
49
|
+
**Important:** all the 2.x releases are deployed to npm and can be used via jsdeliver:
|
|
50
|
+
- particular release, e.g. `v2.0.0-alpha.15`: https://cdn.jsdelivr.net/npm/redoc@2.0.0-alpha.17/bundles/redoc.standalone.js
|
|
51
|
+
- `next` release: https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js
|
|
52
52
|
|
|
53
53
|
Additionally, all the 1.x releases are hosted on our GitHub Pages-based **CDN**:
|
|
54
54
|
- particular release, e.g. `v1.2.0`: https://rebilly.github.io/ReDoc/releases/v1.2.0/redoc.min.js
|
|
@@ -70,6 +70,7 @@ Additionally, all the 1.x releases are hosted on our GitHub Pages-based **CDN**:
|
|
|
70
70
|
- [Shopify Draft Orders](https://help.shopify.com/api/draft-orders)
|
|
71
71
|
- [Discourse](http://docs.discourse.org)
|
|
72
72
|
- [APIs.guru](https://apis.guru/api-doc/)
|
|
73
|
+
- [FastAPI](https://github.com/tiangolo/fastapi)
|
|
73
74
|
|
|
74
75
|
## Deployment
|
|
75
76
|
|
|
@@ -97,23 +98,27 @@ Additionally, all the 1.x releases are hosted on our GitHub Pages-based **CDN**:
|
|
|
97
98
|
</head>
|
|
98
99
|
<body>
|
|
99
100
|
<redoc spec-url='http://petstore.swagger.io/v2/swagger.json'></redoc>
|
|
100
|
-
<script src="https://
|
|
101
|
+
<script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js"> </script>
|
|
101
102
|
</body>
|
|
102
103
|
</html>
|
|
103
104
|
```
|
|
104
105
|
That's all folks!
|
|
105
106
|
|
|
106
|
-
**IMPORTANT NOTE:** if you work with untrusted user spec, use `untrusted-spec` [option](#redoc-
|
|
107
|
+
**IMPORTANT NOTE:** if you work with untrusted user spec, use `untrusted-spec` [option](#redoc-options-object) to prevent XSS security risks.
|
|
107
108
|
|
|
108
109
|
### 1. Install ReDoc (skip this step for CDN)
|
|
109
|
-
Install using [
|
|
110
|
+
Install using [yarn](https://yarnpkg.com):
|
|
111
|
+
|
|
112
|
+
yarn add redoc
|
|
113
|
+
|
|
114
|
+
or using [npm](https://docs.npmjs.com/getting-started/what-is-npm):
|
|
110
115
|
|
|
111
116
|
npm install redoc --save
|
|
112
117
|
|
|
113
118
|
### 2. Reference redoc script in HTML
|
|
114
119
|
For **CDN**:
|
|
115
120
|
```html
|
|
116
|
-
<script src="https://
|
|
121
|
+
<script src="https://cdn.jsdelivr.net/npm/redoc/bundles/redoc.standalone.js"> </script>
|
|
117
122
|
```
|
|
118
123
|
|
|
119
124
|
For npm:
|
|
@@ -131,6 +136,10 @@ For npm:
|
|
|
131
136
|
|
|
132
137
|
## Usage as a React component
|
|
133
138
|
|
|
139
|
+
Install peer dependencies required by ReDoc if you don't have them installed already:
|
|
140
|
+
|
|
141
|
+
npm i react react-dom mobx@^4.2.0 styled-components
|
|
142
|
+
|
|
134
143
|
Import `RedocStandalone` component from 'redoc' module:
|
|
135
144
|
|
|
136
145
|
```js
|
|
@@ -153,7 +162,7 @@ Also you can pass options:
|
|
|
153
162
|
|
|
154
163
|
```js
|
|
155
164
|
<RedocStandalone
|
|
156
|
-
specUrl="http://rebilly.github.io/RebillyAPI/
|
|
165
|
+
specUrl="http://rebilly.github.io/RebillyAPI/openapi.json"
|
|
157
166
|
options={{
|
|
158
167
|
nativeScrollbars: true,
|
|
159
168
|
theme: { colors: { main: '#dd5522' } },
|
|
@@ -163,13 +172,41 @@ Also you can pass options:
|
|
|
163
172
|
|
|
164
173
|
Here are detailed [options docs](#redoc-options-object).
|
|
165
174
|
|
|
175
|
+
You can also specify `onLoaded` callback which will be called each time Redoc has been fully rendered or when error occurs (with an error as the first argument). *NOTE*: It may be called multiply times if you change component properties
|
|
176
|
+
|
|
177
|
+
```js
|
|
178
|
+
<RedocStandalone
|
|
179
|
+
specUrl="http://rebilly.github.io/RebillyAPI/openapi.json"
|
|
180
|
+
onLoaded={error => {
|
|
181
|
+
if (!error) {
|
|
182
|
+
console.log('Yay!');
|
|
183
|
+
}
|
|
184
|
+
}}
|
|
185
|
+
/>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## The Docker way
|
|
189
|
+
|
|
190
|
+
ReDoc is available as pre-built Docker image in official [Docker Hub repository](https://hub.docker.com/r/redocly/redoc/). You may simply pull & run it:
|
|
191
|
+
|
|
192
|
+
docker pull redocly/redoc
|
|
193
|
+
docker run -p 8080:80 redocly/redoc
|
|
194
|
+
|
|
195
|
+
Also you may rewrite some predefined environment variables defined in [Dockerfile](./config/docker/Dockerfile). By default ReDoc starts with demo Petstore spec located at `http://petstore.swagger.io/v2/swagger.json`, but you may change this URL using environment variable `SPEC_URL`:
|
|
196
|
+
|
|
197
|
+
docker run -p 8080:80 -e SPEC_URL=https://api.example.com/openapi.json redocly/redoc
|
|
198
|
+
|
|
199
|
+
## ReDoc CLI
|
|
200
|
+
|
|
201
|
+
[See here](https://github.com/Rebilly/ReDoc/blob/master/cli/README.md)
|
|
202
|
+
|
|
166
203
|
## Configuration
|
|
167
204
|
|
|
168
205
|
### Security Definition location
|
|
169
206
|
You can inject Security Definitions widget into any place of your specification `description`. Check out details [here](docs/security-definitions-injection.md).
|
|
170
207
|
|
|
171
208
|
### Swagger vendor extensions
|
|
172
|
-
ReDoc makes use of the following [vendor extensions](
|
|
209
|
+
ReDoc makes use of the following [vendor extensions](https://swagger.io/specification/#specificationExtensions):
|
|
173
210
|
* [`x-logo`](docs/redoc-vendor-extensions.md#x-logo) - is used to specify API logo
|
|
174
211
|
* [`x-traitTag`](docs/redoc-vendor-extensions.md#x-traitTag) - useful for handling out common things like Pagination, Rate-Limits, etc
|
|
175
212
|
* [`x-code-samples`](docs/redoc-vendor-extensions.md#x-code-samples) - specify operation code samples
|
|
@@ -181,7 +218,7 @@ ReDoc makes use of the following [vendor extensions](http://swagger.io/specifica
|
|
|
181
218
|
* [`x-ignoredHeaderParameters`](docs/redoc-vendor-extensions.md#x-ignoredHeaderParameters) - ability to specify header parameter names to ignore
|
|
182
219
|
|
|
183
220
|
### `<redoc>` options object
|
|
184
|
-
You can use all of the following
|
|
221
|
+
You can use all of the following options with standalone version on <redoc> tag by kebab-casing them, e.g. `scrollYOffset` becomes `scroll-y-offset` and `expandResponses` becomes `expand-responses`.
|
|
185
222
|
|
|
186
223
|
* `untrustedSpec` - if set, the spec is considered untrusted and all HTML/markdown is sanitized to prevent XSS. **Disabled by default** for performance reasons. **Enable this option if you work with untrusted user data!**
|
|
187
224
|
* `scrollYOffset` - If set, specifies a vertical scroll-offset. This is often useful when there are fixed positioned elements at the top of the page, such as navbars, headers etc;
|
|
@@ -194,21 +231,27 @@ You can use all of the following optins with standalone version on <redoc> tag b
|
|
|
194
231
|
* `hideHostname` - if set, the protocol and hostname is not shown in the operation definition.
|
|
195
232
|
* `expandResponses` - specify which responses to expand by default by response codes. Values should be passed as comma-separated list without spaces e.g. `expandResponses="200,201"`. Special value `"all"` expands all responses by default. Be careful: this option can slow-down documentation rendering time.
|
|
196
233
|
* `requiredPropsFirst` - show required properties first ordered in the same order as in `required` array.
|
|
234
|
+
* `sortPropsAlphabetically` - sort properties alphabetically
|
|
235
|
+
* `showExtensions` - show vendor extensions ("x-" fields). Extensions used by ReDoc are ignored. Can be boolean or an array of `string` with names of extensions to display
|
|
197
236
|
* `noAutoAuth` - do not inject Authentication section automatically
|
|
198
237
|
* `pathInMiddlePanel` - show path link and HTTP verb in the middle panel instead of the right one
|
|
199
238
|
* `hideLoading` - do not show loading animation. Useful for small docs
|
|
200
239
|
* `nativeScrollbars` - use native scrollbar for sidemenu instead of perfect-scroll (scrolling performance optimization for big specs)
|
|
201
|
-
* `
|
|
240
|
+
* `hideDownloadButton` - do not show "Download" spec button. **THIS DOESN'T MAKE YOUR SPEC PRIVATE**, it just hides the button.
|
|
241
|
+
* `disableSearch` - disable search indexing and search box
|
|
242
|
+
* `onlyRequiredInSamples` - shows only required fields in request samples.
|
|
243
|
+
* `theme` - ReDoc theme. Not documented yet. For details check source code: [theme.ts](https://github.com/Rebilly/ReDoc/blob/master/src/theme.ts)
|
|
202
244
|
|
|
203
245
|
## Advanced usage of standalone version
|
|
204
246
|
Instead of adding `spec-url` attribute to the `<redoc>` element you can initialize ReDoc via globally exposed `Redoc` object:
|
|
205
247
|
```js
|
|
206
|
-
Redoc.init(specOrSpecUrl, options, element)
|
|
248
|
+
Redoc.init(specOrSpecUrl, options, element, callback?)
|
|
207
249
|
```
|
|
208
250
|
|
|
209
251
|
- `specOrSpecUrl` is either JSON object with specification or an URL to the spec in `JSON` or `YAML` format
|
|
210
252
|
- `options` [options object](#redoc-options-object)
|
|
211
253
|
- `element` DOM element to put ReDoc into
|
|
254
|
+
- `callback` (optional) - callback to be called after Redoc has been fully rendered. It is also called also on errors with error as the first argument
|
|
212
255
|
|
|
213
256
|
```js
|
|
214
257
|
Redoc.init('http://petstore.swagger.io/v2/swagger.json', {
|
|
@@ -218,16 +261,4 @@ Redoc.init('http://petstore.swagger.io/v2/swagger.json', {
|
|
|
218
261
|
|
|
219
262
|
-----------
|
|
220
263
|
## Development
|
|
221
|
-
|
|
222
|
-
- Clone repository
|
|
223
|
-
`git clone https://github.com/Rebilly/ReDoc.git`
|
|
224
|
-
- Go to the project folder
|
|
225
|
-
`cd ReDoc`
|
|
226
|
-
- Install dependencies
|
|
227
|
-
`yarn`
|
|
228
|
-
- _(optional)_ Replace `demo/swagger.yaml` with your own schema
|
|
229
|
-
- Start the server
|
|
230
|
-
`npm start`
|
|
231
|
-
- Open `http://localhost:9090`
|
|
232
|
-
|
|
233
|
-
Alternatively, Docker can be used by just running `docker-compose up`.
|
|
264
|
+
see [CONTRIBUTING.md](.github/CONTRIBUTING.md)
|