πŸ“˜ OpenAPI/Swagger-generated API Reference Documentation

Overview
Redoc logo

Generate interactive API documentation from OpenAPI definitions

Build Status Coverage Status npm License

bundle size npm Docker Build Status

This is the README for the 2.x version of Redoc (React-based). The README for the 1.x version is on the v1.x branch

About Redoc

Redoc is an open-source tool for generating documentation from OpenAPI (fka Swagger) definitions.

By default Redoc offers a three-panel, responsive layout:

  • The left panel contains a search bar and navigation menu.
  • The central panel contains the documentation.
  • The right panel contains request and response examples.

Redoc demo

Live demo

If you want to see how Redoc will render your OpenAPI definition, you can try it out online at https://redocly.github.io/redoc/.

A version of the Swagger Petstore API is displayed by default. To test it with your own OpenAPI definition, enter the URL for your definition and select TRY IT.

Redoc vs. Reference vs. Portals

Redoc is Redocly's community-edition product. Looking for something more? Checkout the following feature comparison of Redocly's premium products versus Redoc:

Features Redoc Reference Portals
Specs
Swagger 2.0 √ √ √
OpenAPI 3.0 √ √ √
OpenAPI 3.1 √ (basic) √ √
Theming
Fonts/colors √ √ √
Extra theme options √ √
Performance
Pagination √ √
Search (enhanced) √ √
Search (server-side) √
Multiple APIs
Multiple versions √ √
Multiple APIs √
API catalog √
Additional features
Try-it console √ √
Automated code samples √ √
Deep links √ √
More SEO control √
Contextual docs √
Landing pages √
React hooks for more control √
Personalization √
Analytics integrations √
Feedback Coming Soon

Refer to the Redocly's documentation for more information on these products:

Features

Customization options

Customization services

  • High-level grouping in side-menu with the x-tagGroups specification extension
  • Branding/customizations using the theme option

Support

  • OpenAPI v3.0 support
  • Basic OpenAPI v3.1 support
  • Broad OpenAPI v2.0 feature support (yes, it supports even discriminator)
  • Code samples support (via vendor extension)

Releases

Important: all the 2.x releases are deployed to npm and can be used with jsdeliver:

Additionally, all the 1.x releases are hosted on our GitHub Pages-based CDN (deprecated):

Version Guidance

Redoc Release OpenAPI Specification
2.0.0-alpha.54 3.1, 3.0.x, 2.0
2.0.0-alpha.x 3.0, 2.0
1.19.x 2.0
1.18.x 2.0
1.17.x 2.0

Showcase

Lint OpenAPI definitions

Redocly's OpenAPI CLI is an open source command-line tool that you can use to lint your OpenAPI definition. Linting helps you to catch errors and inconsistencies in your OpenAPI definition before publishing.

Refer to Lint configuration in the OpenAPI documentation for more information.

Deployment

TL;DR final code example

To render your OpenAPI definition using Redoc, use the following HTML code sample and replace the spec-url attribute with the url or local file address to your definition.

<!DOCTYPE html>
<html>
  <head>
    <title>Redoc</title>
    <!-- needed for adaptive design -->
    <meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet">

    <!--
    Redoc doesn't change outer page styles
    -->
    <style>
      body {
        margin: 0;
        padding: 0;
      }
    </style>
  </head>
  <body>
    <redoc spec-url='http://petstore.swagger.io/v2/swagger.json'></redoc>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/bundles/redoc.standalone.js"> </script>
  </body>
</html>

For step-by-step instructions for how to get started using Redoc to render your OpenAPI definition, refer to the Redoc quickstart guide.

See IE11 Support Notes for information on IE support for Redoc.

Redoc CLI

For more information on Redoc's commmand-line interface, refer to Using the Redoc CLI.

Configuration

Security Definition location

You can inject the Security Definitions widget into any place in your definition description. For more information, refer to Security definitions injection.

OpenAPI specification extensions

Redoc uses the following specification extensions:

  • x-logo - is used to specify API logo
  • x-traitTag - useful for handling out common things like Pagination, Rate-Limits, etc
  • x-codeSamples - specify operation code samples
  • x-examples - specify JSON example for requests
  • x-nullable - mark schema param as a nullable
  • x-displayName - specify human-friendly names for the menu categories
  • x-tagGroups - group tags by categories in the side menu
  • x-servers - ability to specify different servers for API (backported from OpenAPI 3.0)
  • x-ignoredHeaderParameters - ability to specify header parameter names to ignore
  • x-additionalPropertiesName - ability to supply a descriptive name for the additional property keys
  • x-summary - For Response object, use as the response button text, with description rendered under the button
  • x-extendedDiscriminator - In Schemas, uses this to solve name-clash issues with the standard discriminator
  • x-explicitMappingOnly - In Schemas, display a more descriptive property name in objects with additionalProperties when viewing the property list with an object

<redoc> options object

You can use all of the following options with the standalone version of the tag by kebab-casing them. For example, scrollYOffset becomes scroll-y-offset, and expandResponses becomes expand-responses.

  • disableSearch - disable search indexing and search box.
  • expandDefaultServerVariables - enable expanding default server variables, default false.
  • 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.
  • generatedPayloadSamplesMaxDepth - set the maximum render depth for JSON payload samples (responses and request body). The default value is 10.
  • maxDisplayedEnumValues - display only specified number of enum values. hide rest values under spoiler.
  • hideDownloadButton - do not show "Download" spec button. THIS DOESN'T MAKE YOUR SPEC PRIVATE, it just hides the button.
  • hideHostname - if set, the protocol and hostname is not shown in the operation definition.
  • hideLoading - do not show loading animation. Useful for small docs.
  • hideSchemaPattern - if set, the pattern is not shown in the schema.
  • hideSingleRequestSampleTab - do not show the request sample tab for requests with only one sample.
  • expandSingleSchemaField - automatically expand single field in a schema
  • jsonSampleExpandLevel - set the default expand level for JSON payload samples (responses and request body). Special value "all" expands all levels. The default value is 2.
  • hideSchemaTitles - do not display schema title next to to the type
  • simpleOneOfTypeLabel - show only unique oneOf types in the label without titles
  • lazyRendering - Not implemented yet if set, enables lazy rendering mode in ReDoc. This mode is useful for APIs with big number of operations (e.g. > 50). In this mode ReDoc shows initial screen ASAP and then renders the rest operations asynchronously while showing progress bar on the top. Check out the demo for the example.
  • menuToggle - if true clicking second time on expanded menu item will collapse it, default true.
  • nativeScrollbars - use native scrollbar for sidemenu instead of perfect-scroll (scrolling performance optimization for big specs).
  • noAutoAuth - do not inject Authentication section automatically.
  • onlyRequiredInSamples - shows only required fields in request samples.
  • pathInMiddlePanel - show path link and HTTP verb in the middle panel instead of the right one.
  • requiredPropsFirst - show required properties first ordered in the same order as in required array.
  • 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; scrollYOffset can be specified in various ways:
    • number: A fixed number of pixels to be used as offset.
    • selector: selector of the element to be used for specifying the offset. The distance from the top of the page to the element's bottom will be used as offset.
    • function: A getter function. Must return a number representing the offset (in pixels).
  • 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.
  • sortPropsAlphabetically - sort properties alphabetically.
  • payloadSampleIdx - if set, payload sample will be inserted at this index or last. Indexes start from 0.
  • theme - ReDoc theme. For details check theme docs.
  • 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!
  • sideNavStyle - can be specified in various ways:
    • summary-only: displays a summary in the sidebar navigation item. (default)
    • path-only: displays a path in the sidebar navigation item.

<redoc> theme object

  • spacing
    • unit: 5 # main spacing unit used in autocomputed theme values later
    • sectionHorizontal: 40 # Horizontal section padding. COMPUTED: spacing.unit * 8
    • sectionVertical: 40 # Horizontal section padding. COMPUTED: spacing.unit * 8
  • breakpoints # breakpoints for switching three/two and mobile view layouts
    • small: '50rem'
    • medium: '85rem'
    • large: '105rem'
  • colors
    • tonalOffset: 0.3 # default tonal offset used in computations
  • typography
    • fontSize: '14px'
    • lineHeight: '1.5em'
    • fontWeightRegular: '400'
    • fontWeightBold: '600'
    • fontWeightLight: '300'
    • fontFamily: 'Roboto, sans-serif'
    • smoothing: 'antialiased'
    • optimizeSpeed: true
    • headings
      • fontFamily: 'Montserrat, sans-serif'
      • fontWeight: '400'
      • lineHeight: '1.6em'
    • code # inline code styling
      • fontSize: '13px'
      • fontFamily: 'Courier, monospace'
      • lineHeight: # COMPUTED: typography.lineHeight
      • fontWeight: # COMPUTED: typography.fontWeightRegular
      • color: '#e53935'
      • backgroundColor: 'rgba(38, 50, 56, 0.05)'
      • wrap: false # whether to break word for inline blocks (otherwise they can overflow)
    • links
      • color: # COMPUTED: colors.primary.main
      • visited: # COMPUTED: typography.links.color
      • hover: # COMPUTED: lighten(0.2 typography.links.color)
  • menu
    • width: '260px'
    • backgroundColor: '#fafafa'
    • textColor: '#333333'
    • activeTextColor: # COMPUTED: theme.menu.textColor (if set by user) or theme.colors.primary.main
    • groupItems # Group headings
      • textTransform: 'uppercase'
    • level1Items # Level 1 items like tags or section 1st level items
      • textTransform: 'none'
    • arrow # menu arrow
      • size: '1.5em'
      • color: # COMPUTED: theme.menu.textColor
  • logo
    • maxHeight: # COMPUTED: menu.width
    • maxWidth: # COMPUTED: menu.width
    • gutter: '2px' # logo image padding
  • rightPanel
    • backgroundColor: '#263238'
    • width: '40%'
    • textColor: '#ffffff'

Development

see CONTRIBUTING.md

Comments
  • Tags side menu with markdown and object description

    Tags side menu with markdown and object description

    Pretty quick workaround to be able to add additional side menu sections to tags, in the same manner it is done in the info description object.

    Also an component was added which prints a referenced object/schema, and optionally a referenced example.

    Combining both one may achieve similar structure to the one Stripe uses for their own documentation.

    opened by nanov 75
  • Migrate ReDoc to React

    Migrate ReDoc to React

    Hey, ReDoc community!

    To support OpenAPI 3.0 I am working on a major refactor of the codebase. As part of this refactor I am considering rewriting ReDoc view layer completely to React.

    Why? I've been working with React on a few side project for the last 5-6 month and I really loved working with it comparing to Angular:

    • much much simpler, no magic
    • more performant (especially since React 16 release aka Fiber)
    • the community is healthier - much more stable ready-to use modules (there are lots in Angular too, but usually they are part of some huge UI-packs)
    • smaller bundle size
    • simpler to build-in live updates
    • server-side rendering actually working
    • I love styled-components

    Also, I often hear in the issues or PRs that "I don't know Angular but I will try". Probably React can lower the barrier for new contributors.

    I will try to achieve fully backward compatibility with the Angular version.

    Now I want to hear the voice of community! What do you think? Do you find this idea is good or bad! Any concerns! Or just vote πŸ‘ or πŸ‘Ž

    Thanks in advance!

    cc contributors (sorry for bothering): @bfirsh @brendo @adamaltman @cesarlevel @IvanGoncharov @amanganiello @kedashoe @alairock @Joe-noh @gierschv @jsmartfo @jaingaurav @agallou @jacobbaskin @MikeRalphson @bennyn @adamd @LeFnord @wilsonge @philsturgeon @khorolets @pgolm @jfeltesse-mdsol @Alfaspider @oblakeerickson @Jean-Daniel @KtorZ @jimmyjames @bioball

    question 
    opened by RomanHotsiy 56
  • Render model definitions? (feature support)

    Render model definitions? (feature support)

    Hello all,

    Thanks for this amazing project! ;) It is now our default view engine of our Swagger spec.

    As you can see in swagger-ui repo, there is a popular issue where people are asking for Models rendering, just like swagger-editor does. This would be great if it could be added to ReDoc! ;)

    Thanks!

    Type: Enhancement feature 
    opened by PedroMD 35
  • redoc-cli: ReferenceError: URL is not defined

    redoc-cli: ReferenceError: URL is not defined

    Hi there!

    There seems to be an issue with redoc-cli ATM.

    Noticed it with one of our docs, but can be reproduced using the demo/swagger.yaml file from this repository:

    $> yarn add redoc-cli
    $> ./node_modules/.bin/redoc-cli bundle -o './redoc-test' demo/swagger.yaml
    [ReDoc Compatibility mode]: Converting OpenAPI 2.0 to OpenAPI 3.0
    Prerendering docs
    ReferenceError: URL is not defined
        at removeQueryString (/tmp/node_modules/redoc/bundles/redoc.lib.js:6940:15)
        at /tmp/node_modules/redoc/bundles/redoc.lib.js:11055:137
        at Array.map (<anonymous>)
        at Object.children (/tmp/node_modules/redoc/bundles/redoc.lib.js:11051:104)
        at ReactDOMServerRenderer.render (/tmp/node_modules/react-dom/cjs/react-dom-server.node.development.js:3412:55)
        at ReactDOMServerRenderer.read (/tmp/node_modules/react-dom/cjs/react-dom-server.node.development.js:3161:29)
        at Object.renderToString (/tmp/node_modules/react-dom/cjs/react-dom-server.node.development.js:3646:27)
        at /tmp/node_modules/redoc-cli/index.js:189:29
        at Generator.next (<anonymous>)
        at fulfilled (/tmp/node_modules/redoc-cli/index.js:5:58)
    
    $> nodejs --version
    v8.10.0
    $> yarn --version
    1.13.0
    
    opened by srats 30
  • Webpack 5 `Cant Resolve` errors in `v2.0.0-rc.58`

    Webpack 5 `Cant Resolve` errors in `v2.0.0-rc.58`

    Describe the bug Running Redoc Standalone in Docusaurus 2.0.0-beta.9 and getting webpack issues stemming from the redoc openapi-core library, which does not seem to be open source

    Module not found: Error: Can't resolve 'path' in '/Users/mySite/site/node_modules/@redocly/openapi-core/lib/config'
    BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
    This is no longer the case. Verify if you need this module and configure a polyfill for it.
    
    If you want to include a polyfill, you need to:
    	- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
    	- install 'path-browserify'
    If you don't want to include a polyfill, you can use an empty module like this:
    	resolve.fallback: { "path": false }
    
    Module not found: Error: Can't resolve 'path' in '/Users/mySite/site/node_modules/@redocly/openapi-core/lib/redocly'
    BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
    This is no longer the case. Verify if you need this module and configure a polyfill for it.
    
    If you want to include a polyfill, you need to:
    	- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
    	- install 'path-browserify'
    If you don't want to include a polyfill, you can use an empty module like this:
    	resolve.fallback: { "path": false }
    
    Module not found: Error: Can't resolve 'os' in '/Users/mySite/site/node_modules/@redocly/openapi-core/lib/redocly'
    BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
    This is no longer the case. Verify if you need this module and configure a polyfill for it.
    
    If you want to include a polyfill, you need to:
    	- add a fallback 'resolve.fallback: { "os": require.resolve("os-browserify/browser") }'
    	- install 'os-browserify'
    If you don't want to include a polyfill, you can use an empty module like this:
    	resolve.fallback: { "os": false }
    
    Module not found: Error: Can't resolve 'path' in '/Users/mySite/site/node_modules/@redocly/openapi-core/lib'
    BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
    This is no longer the case. Verify if you need this module and configure a polyfill for it.
    
    If you want to include a polyfill, you need to:
    	- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
    	- install 'path-browserify'
    If you don't want to include a polyfill, you can use an empty module like this:
    	resolve.fallback: { "path": false }
    
    Module not found: Error: Can't resolve 'tty' in '/Users/mySite/site/node_modules/@redocly/openapi-core/node_modules/colorette'
    BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
    This is no longer the case. Verify if you need this module and configure a polyfill for it.
    
    If you want to include a polyfill, you need to:
    	- add a fallback 'resolve.fallback: { "tty": require.resolve("tty-browserify") }'
    	- install 'tty-browserify'
    If you don't want to include a polyfill, you can use an empty module like this:
    	resolve.fallback: { "tty": false }
    
    Module not found: Error: Can't resolve 'buffer' in '/Users/mySite/site/node_modules/yaml/browser/dist'
    BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
    This is no longer the case. Verify if you need this module and configure a polyfill for it.
    
    If you want to include a polyfill, you need to:
    	- add a fallback 'resolve.fallback: { "buffer": require.resolve("buffer/") }'
    	- install 'buffer'
    If you don't want to include a polyfill, you can use an empty module like this:
    	resolve.fallback: { "buffer": false }
    client (webpack 5.65.0) compiled with 6 errors and 1 warning
    

    Expected behavior Page should render without Webpack/polyfill issues

    Type: Bug p1 
    opened by ajrice6713 27
  • Can't fetch local file

    Can't fetch local file

    My apologies if this is spelled out somewhere -- I looked through the issues.

    I can't seem to direct ReDoc to load my OpenAPI spec from the local filesystem -- only via http. I have tried the following:

    <redoc spec-url='swagger.json'></redoc>
    <redoc spec-url='file:///Full/Path/swagger.json'></redoc>
    

    in addition to other permutations. However, they all result in this error:

    Unable to resolve $ref pointer "file:///<pathname to my spec file>"

    Is there any way to have ReDoc load the spec locally?

    Type: Enhancement add-to-faq 
    opened by yspotts 26
  • False positive recursion

    False positive recursion

    Hello there, wrestling following issue.

    Imagine I want to reuse some schema, let's say ID – I have following in ./helpers/id.yaml:

    properties:
      id:
        type: number
    required:
      - id
    

    And here is a simple OpenAPI, which should result in a simple structure of three nested objects, which all wants to reference the id helper.

    openapi: 3.0.0
    info:
      title: False positive recursion
      version: '3.0'
    paths:
      /documents:
        get:
          summary: Example
          responses:
            '200':
              description: OK
              content:
                application/json:
                  schema:
                    allOf:
                      - $ref: ./helpers/id.yaml
                      - properties:
                          second:
                            allOf:
                              - $ref: ./helpers/id.yaml
                              - properties:
                                  third:
                                    allOf:
                                      - $ref: ./helpers/id.yaml
                                      - properties:
                                          something:
                                            type: string
    

    Whereas the first and second object are correctly rendered with required id attribute, the third object is flagged as recursive:

    image

    Any idea? Is it a bug or am I missing something?

    Type: Bug p2 
    opened by krystof-k 22
  • Properties on the same level as anyOf/oneOf/... are missing and anyOf merge is illogical

    Properties on the same level as anyOf/oneOf/... are missing and anyOf merge is illogical

    If I specify a schema for an object, which has properties and in addition some optional schemas it could conform to, the properties are not shown.

    Example:

    openapi: 3.0.2
    info:
      title: Example
      version: 0.4.0
    paths:
      '/example':
        get:
          responses:
            '200':
              description: 'cube:properties is not shown in the schema'
              content:
                application/json:
                  schema:
                    type: object
                    required:
                      - 'cube:dimensions'
                    properties:
                      'cube:dimensions':
                        type: object
                        oneOf:
                          - title: Spatial Dimension
                            type: object
                          - title: Temporal Dimension
                            type: object
                    anyOf:
                      - $ref: '#/components/schemas/collection_eo'
                      - $ref: '#/components/schemas/collection_sar'
                      - $ref: '#/components/schemas/collection_sci'
    components:
      schemas:
        collection_eo:
          type: object
          format: eo
        collection_sar:
          type: object
          format: sar
        collection_sci:
          type: object
          format: sci
    

    I would cube:dimensions expect to show up in ReDoc as it does in Swagger Editor: image

    Tested with ReDoc standalone version 2.0.0-rc.2

    opened by m-mohr 20
  • Regression: Double slashes added to full URL display

    Regression: Double slashes added to full URL display

    Attempted to upgrade to [email protected] this morning and noticed that it is inserting double slashes in the full url for a route:

    image

    Minimal reproduction.

    openapi: 3.0.2
    
    info:
      title: Double Slash
      version: v1
    servers:
      - url: https://api.test.invalid
    
    paths:
      /v1:
        get:
          summary: Double slash bug
          responses:
            200:
              description: OK
    
    opened by mramato 19
  • Error: Incompatible types in allOf at

    Error: Incompatible types in allOf at "undefined"

    Using 2.0.0-rc.4 with an OpenAPI spec 3.0.2 file, parsing fails and I'm getting the following error in the browser console:

    redoc.standalone.js:26397 Error: Incompatible types in allOf at "undefined" at e.mergeAllOf (redoc.standalone.js:38564) at redoc.standalone.js:38614 at Array.map () at r (redoc.standalone.js:38613) at e.hoistOneOfs (redoc.standalone.js:38625) at e.mergeAllOf (redoc.standalone.js:38537) at e.mergeAllOf (redoc.standalone.js:38568) at redoc.standalone.js:38861 at Array.map () at e.initOneOf (redoc.standalone.js:38859)

    I'm not able to understand the point in which fails.

    My OpenAPI spec 3.0.2 json file validates correctly using a tool like oas-validate from https://github.com/Mermade/oas-kit

    Type: Bug 
    opened by pintux 19
  • Is there any option to load multiple swaggers in SpecUrl

    Is there any option to load multiple swaggers in SpecUrl

    Hi, I am loading the Swagger in the below format,

    <RedocStandalone
            specUrl = 'https://....../datafile.json'
            />
    

    can anyone please let me know if there's any option to load multiple Swaggers in this context.

    opened by binobose 18
  • The SLM OAS YAML file cannot be loaded by Redoc (an open source tool), which results in a browser crash and Out Of Memory error.

    The SLM OAS YAML file cannot be loaded by Redoc (an open source tool), which results in a browser crash and Out Of Memory error.

    The SLM OAS YAML file cannot be loaded by Redoc (an open source tool), which results in a browser crash and Out Of Memory error.

    We would like to render the SLM OAS YAML file on the Redoc open-source tool. Redoc cannot render SLM OAS YAML because of the nested or circular schema definition. We have around 200 APIs that use schema definition often, which causes the rendering issues.

    Here is an example of a circular reference in the SLM YAML file. SampleEndpoint Β  --> SchemaA Β  Β  --> SchemaB Β  Β  Β  --> SchemaC Β  Β  Β  Β  --> SchemaA Β  Β  Β  --> SchemaD Β Β Β Β Β Β Β Β --> SchemaB

    NOTE: I ran it locally using the "redocly preview-docs" command. I tried pagination, which works fine in Redocly's premium version. Can it be supported in Redoc?

    opened by sagayakwad26 0
  • Remove path aliases from Documentation

    Remove path aliases from Documentation

    Describe the problem to be solved

    When you have path aliases in openapi.yaml with $ref, for example

    paths:
      /municipios/{municipio}:
        get:
          operationId: getMunicipality
          summary: Detalhes sobre MunicΓ­pio  
          parameters:
            - in: path
              name: municipio
              required: true
              schema:
                type: string
                example: Γ©vora
              allowReserved: true
              description: MunicΓ­pio
            - $ref: '#/components/parameters/json'
          responses:
            '200':
              description: Detalhes do MunicΓ­pio
              content:
                application/json:
                  schema:
                    $ref: '#/components/schemas/municipio'
    
      /municipio/{municipio}:
        $ref: '#/paths/~1municipios~1%7Bmunicipio%7D'
    

    /municipio/{municipio} is de facto merely a path alias of /municipios/{municipio}

    In the documentation both paths rules and response samples are shown in duplicate.

    Describe the solution you'd like

    I would like to remove path aliases from documentation, that is, basically remove these duplicates, since I just use them due to backward compatibility.

    Describe alternatives you've considered

    I realized this might work in client-side, but I still need to understand how

    document.querySelectorAll('div[data-section-id]').forEach(el=> {
        const attr = el.getAttribute('data-section-id'))
        // ...
    })
    
    Type: Enhancement 
    opened by jfoclpf 0
  • Command-line interface to bundle my docs into a zero-dependency HTML file

    Command-line interface to bundle my docs into a zero-dependency HTML file

    Hello, I'm sorry for my bad English. When I use redoc-cli to generate a zero-dependency HTML file,I encounter a strange problem. In the zero-dependency HTML file, I found that my request body lost some properties, but if I use command openapi preview-docs it is ok. Then I try to lint, it reports some error like this 'Expected type Schema (object) but got string. But I'm sure there's nothing wrong with what I wrote. So I lint over and over again. It still reports me the same error. Suddenly I had an epiphany, I added the .yaml suffix to the file. It actually worked!!!!! I wonder why this is, I just added the suffix to the file. Thank you very much!

    opened by Zacama 0
  • redocli docker to build html file

    redocli docker to build html file

    Describe the problem to be solved For now, the only choice to use redocli is to install via npm/yarn and build with that.

    npm i -g redoc-cli

    redoc-cli build -o openapi/test.html openapi/test.yml

    Describe the solution you'd like

    docker run -it -v $PWD:/spec redoc-cli build -o output.html swagger.yml

    Describe alternatives you've considered Use npm/yarn install is an alternative. But in the CI/CD spirit, we don't want install/build tools each time CI is triggered..

    Thanks to taking time.

    Additional context Environnement: MacOS Ventura 13.1 CI/CD: GitlabCI. Docker: Docker version 20.10.20, build 9fdeb9c.

    Type: Enhancement 
    opened by Itarix 0
  • Redoc.init callback not working on error

    Redoc.init callback not working on error

    Describe the bug Callback function registered on Redoc.init is not called on error while rendering redoc.

    Redoc.init(
      event.data,
      config,
      document.getElementById('redoc-container'),
      callback ---> doesn't seem to be called.
    );
    

    If something's wrong in my code, please tell me how to apply callback function on error.

    Expected behavior Callback function should be called on error. image

    Minimal reproducible OpenAPI snippet(if possible)

    Screenshots image

    Additional context Add any other context about the problem here.

    Type: Bug help wanted 
    opened by broccolism 4
  • Can't build on windows 10

    Can't build on windows 10

    Describe the bug Cannot build on windows 10 system

    Expected behavior A running local version

    System: OS: Windows 10 10.0.19044 CPU: (12) x64 Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz Memory: 4.51 GB / 15.86 GB Binaries: Node: 16.14.0 - C:\Program Files\nodejs\node.EXE Yarn: 1.22.17 - ~\AppData\Roaming\npm\yarn.CMD npm: 8.5.1 - C:\Program Files\nodejs\npm.CMD Browsers: Edge: Spartan (44.19041.1266.0), Chromium (108.0.1462.42) Internet Explorer: 11.0.19041.1566

    Additional context

    ERROR in ./src/utils/helpers.ts 137:15-35

    Module not found: Error: Can't resolve 'url' in 'D:\Weblabs\nodejs\redoc\src\utils'

    BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default. This is no longer the case. Verify if you need this module and configure a polyfill for it.

    If you want to include a polyfill, you need to: - add a fallback 'resolve.fallback: { "url": require.resolve("url/") }' - install 'url' If you don't want to include a polyfill, you can use an empty module like this: resolve.fallback: { "url": false }

    ERROR in ./src/utils/helpers.ts 137:15-35

    Module not found: Error: Can't resolve 'url' in 'D:\Weblabs\nodejs\redoc\src\utils'

    BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default. This is no longer the case. Verify if you need this module and configure a polyfill for it.

    If you want to include a polyfill, you need to: - add a fallback 'resolve.fallback: { "url": require.resolve("url/") }' - install 'url' If you don't want to include a polyfill, you can use an empty module like this: resolve.fallback: { "url": false }

    ERROR in cli/index.ts:4:33

    TS2307: Cannot find module 'update-notifier' or its corresponding type declarations. 2 | /* tslint:disable:no-implicit-dependencies */ 3 | import * as React from 'react';

    4 | import * as updateNotifier from 'update-notifier'; | ^^^^^^^^^^^^^^^^^ 5 | import { renderToString } from 'react-dom/server'; 6 | import { ServerStyleSheet } from 'styled-components'; 7 |

    ERROR in cli/index.ts:8:25

    TS2307: Cannot find module 'handlebars' or its corresponding type declarations. 6 | import { ServerStyleSheet } from 'styled-components'; 7 |

    8 | import { compile } from 'handlebars'; | ^^^^^^^^^^^^ 9 | import { createServer, IncomingMessage, ServerResponse } from 'http'; 10 | import { dirname, join, resolve, extname as getExtName } from 'path'; 11 |

    ERROR in cli/index.ts:17:23

    TS2307: Cannot find module 'chokidar' or its corresponding type declarations. 15 | import { createStore, loadAndBundleSpec, Redoc } from 'redoc'; 16 |

    17 | import { watch } from 'chokidar'; | ^^^^^^^^^^ 18 | import { 19 | createReadStream, 20 | existsSync,

    ERROR in cli/index.ts:26:25

    TS2307: Cannot find module 'mkdirp' or its corresponding type declarations. 24 | writeFileSync, 25 | } from 'fs';

    26 | import * as mkdirp from 'mkdirp'; | ^^^^^^^^ 27 | 28 | import * as YargsParser from 'yargs'; 29 | // eslint-disable-next-line import/no-extraneous-dependencies

    ERROR in cli/index.ts:122:1

    TS2769: No overload matches this call. Overload 1 of 7, '(command: string | readonly string[], showInHelp: false, builder?: ((args: Argv<{}>) => void) | ((args: Argv<{}>) => PromiseLike<Argv<{}>>) | ((args: Argv<{}>) => Argv<...>) | undefined, handler?: ((args: ArgumentsCamelCase<...>) => void | Promise<...>) | undefined, middlewares?: MiddlewareFunction<...>[] | undefined, deprecated?: string | ... 1 more ... | undefined): Argv<...>', gave the following error. Argument of type '"start the server"' is not assignable to parameter of type 'false'. Overload 2 of 7, '(command: string | readonly string[], description: string, builder?: ((args: Argv<{}>) => void) | ((args: Argv<{}>) => PromiseLike<Argv<{}>>) | ((args: Argv<{}>) => Argv<...>) | undefined, handler?: ((args: ArgumentsCamelCase<...>) => void | Promise<...>) | undefined, middlewares?: MiddlewareFunction<...>[] | undefined, deprecated?: string | ... 1 more ... | undefined): Argv<...>', gave the following error. Type '(res: { [argName: string]: unknown; _: (string | number)[]; $0: string; }) => { [argName: string]: unknown; _: (string | number)[]; $0: string; }' is not assignable to type 'MiddlewareFunction<{}>'. Type '{ [argName: string]: unknown; _: (string | number)[]; $0: string; }' is not assignable to type 'void | Promise'. Type '{ [argName: string]: unknown; _: (string | number)[]; $0: string; }' is missing the following properties from type 'Promise': then, catch, [Symbol.toStringTag], finally Overload 3 of 7, '(command: string | readonly string[], description: string, builder?: { [key: string]: Options; } | undefined, handler?: ((args: ArgumentsCamelCase<InferredOptionTypes<{ [key: string]: Options; }>>) => void | Promise<...>) | undefined, middlewares?: MiddlewareFunction<...>[] | undefined, deprecated?: string | ... 1 more ... | undefined): Argv<...>', gave the following error. Argument of type '(yargs: Argv<{}>) => Argv<{}>' is not assignable to parameter of type '{ [key: string]: Options; }'. Index signature is missing in type '(yargs: Argv<{}>) => Argv<{}>'. 120 | }; 121 |

    122 | YargsParser.command( | ^^^^^^^^^^^^^^^^^^^^ 123 | 'serve ', | ^^^^^^^^^^^^^^^^^ 124 | 'start the server', | ^^^^^^^^^^^^^^^^^ 125 | yargs => { | ^^^^^^^^^^^^^^^^^ 126 | yargs.positional('spec', { | ^^^^^^^^^^^^^^^^^ 127 | describe: 'path or URL to your spec', | ^^^^^^^^^^^^^^^^^ 128 | }); | ^^^^^^^^^^^^^^^^^ 129 | | ^^^^^^^^^^^^^^^^^ 130 | yargs.options('title', { | ^^^^^^^^^^^^^^^^^ 131 | describe: 'Page Title', | ^^^^^^^^^^^^^^^^^ 132 | type: 'string', | ^^^^^^^^^^^^^^^^^ 133 | }); | ^^^^^^^^^^^^^^^^^ 134 | | ^^^^^^^^^^^^^^^^^ 135 | yargs.option('s', { | ^^^^^^^^^^^^^^^^^ 136 | alias: 'ssr', | ^^^^^^^^^^^^^^^^^ 137 | describe: 'Enable server-side rendering', | ^^^^^^^^^^^^^^^^^ 138 | type: 'boolean', | ^^^^^^^^^^^^^^^^^ 139 | }); | ^^^^^^^^^^^^^^^^^ 140 | | ^^^^^^^^^^^^^^^^^ 141 | yargs.option('h', { | ^^^^^^^^^^^^^^^^^ 142 | alias: 'host', | ^^^^^^^^^^^^^^^^^ 143 | type: 'string', | ^^^^^^^^^^^^^^^^^ 144 | default: '127.0.0.1', | ^^^^^^^^^^^^^^^^^ 145 | }); | ^^^^^^^^^^^^^^^^^ 146 | | ^^^^^^^^^^^^^^^^^ 147 | yargs.option('p', { | ^^^^^^^^^^^^^^^^^ 148 | alias: 'port', | ^^^^^^^^^^^^^^^^^ 149 | type: 'number', | ^^^^^^^^^^^^^^^^^ 150 | default: 8080, | ^^^^^^^^^^^^^^^^^ 151 | }); | ^^^^^^^^^^^^^^^^^ 152 | | ^^^^^^^^^^^^^^^^^ 153 | yargs.option('w', { | ^^^^^^^^^^^^^^^^^ 154 | alias: 'watch', | ^^^^^^^^^^^^^^^^^ 155 | type: 'boolean', | ^^^^^^^^^^^^^^^^^ 156 | }); | ^^^^^^^^^^^^^^^^^ 157 | | ^^^^^^^^^^^^^^^^^ 158 | yargs.options('disable-google-font', { | ^^^^^^^^^^^^^^^^^ 159 | describe: 'Disable Google Font', | ^^^^^^^^^^^^^^^^^ 160 | type: 'boolean', | ^^^^^^^^^^^^^^^^^ 161 | default: false, | ^^^^^^^^^^^^^^^^^ 162 | }); | ^^^^^^^^^^^^^^^^^ 163 | | ^^^^^^^^^^^^^^^^^ 164 | yargs.demandOption('spec'); | ^^^^^^^^^^^^^^^^^ 165 | return yargs; | ^^^^^^^^^^^^^^^^^ 166 | }, | ^^^^^^^^^^^^^^^^^ 167 | async argv => { | ^^^^^^^^^^^^^^^^^ 168 | const config: Options = { | ^^^^^^^^^^^^^^^^^ 169 | ssr: argv.ssr as boolean, | ^^^^^^^^^^^^^^^^^ 170 | title: argv.title as string, | ^^^^^^^^^^^^^^^^^ 171 | watch: argv.watch as boolean, | ^^^^^^^^^^^^^^^^^ 172 | disableGoogleFont: argv.disableGoogleFont as boolean, | ^^^^^^^^^^^^^^^^^ 173 | templateFileName: argv.template as string, | ^^^^^^^^^^^^^^^^^ 174 | templateOptions: argv.templateOptions || {}, | ^^^^^^^^^^^^^^^^^ 175 | redocOptions: getObjectOrJSON(argv.options), | ^^^^^^^^^^^^^^^^^ 176 | }; | ^^^^^^^^^^^^^^^^^ 177 | | ^^^^^^^^^^^^^^^^^ 178 | try { | ^^^^^^^^^^^^^^^^^ 179 | notifyUpdateCliVersion(); | ^^^^^^^^^^^^^^^^^ 180 | await serve(argv.host as string, argv.port as number, argv.spec as string, config); | ^^^^^^^^^^^^^^^^^ 181 | } catch (e) { | ^^^^^^^^^^^^^^^^^ 182 | handleError(e); | ^^^^^^^^^^^^^^^^^ 183 | } | ^^^^^^^^^^^^^^^^^ 184 | }, | ^^^^^^^^^^^^^^^^^ 185 | [ | ^^^^^^^^^^^^^^^^^ 186 | res => { | ^^^^^^^^^^^^^^^^^ 187 | console.log( | ^^^^^^^^^^^^^^^^^ 188 | \n⚠️ This command is deprecated. Use "npx @redocly/cli preview-docs petstore.yaml"\n, | ^^^^^^^^^^^^^^^^^ 189 | ); | ^^^^^^^^^^^^^^^^^ 190 | return res; | ^^^^^^^^^^^^^^^^^ 191 | }, | ^^^^^^^^^^^^^^^^^ 192 | ], | ^^^^^^^^^^^^^^^^^ 193 | ) | ^^ 194 | .command( 195 | 'build ', 196 | 'build definition into zero-dependency HTML-file',

    ERROR in cli/index.ts:122:1

    TS2769: No overload matches this call. Overload 1 of 7, '(command: string | readonly string[], showInHelp: false, builder?: ((args: Argv<{}>) => void) | ((args: Argv<{}>) => PromiseLike<Argv<{}>>) | ((args: Argv<{}>) => Argv<...>) | undefined, handler?: ((args: ArgumentsCamelCase<...>) => void | Promise<...>) | undefined, middlewares?: MiddlewareFunction<...>[] | undefined, deprecated?: string | ... 1 more ... | undefined): Argv<...>', gave the following error. Argument of type '"bundle spec into zero-dependency HTML-file [deprecated]"' is not assignable to parameter of type 'false'. Overload 2 of 7, '(command: string | readonly string[], description: string, builder?: ((args: Argv<{}>) => void) | ((args: Argv<{}>) => PromiseLike<Argv<{}>>) | ((args: Argv<{}>) => Argv<...>) | undefined, handler?: ((args: ArgumentsCamelCase<...>) => void | Promise<...>) | undefined, middlewares?: MiddlewareFunction<...>[] | undefined, deprecated?: string | ... 1 more ... | undefined): Argv<...>', gave the following error. Type '(res: { [argName: string]: unknown; _: (string | number)[]; $0: string; }) => { [argName: string]: unknown; _: (string | number)[]; $0: string; }' is not assignable to type 'MiddlewareFunction<{}>'. Type '{ [argName: string]: unknown; _: (string | number)[]; $0: string; }' is not assignable to type 'void | Promise'. Type '{ [argName: string]: unknown; _: (string | number)[]; $0: string; }' is not assignable to type 'Promise'. Overload 3 of 7, '(command: string | readonly string[], description: string, builder?: { [key: string]: Options; } | undefined, handler?: ((args: ArgumentsCamelCase<InferredOptionTypes<{ [key: string]: Options; }>>) => void | Promise<...>) | undefined, middlewares?: MiddlewareFunction<...>[] | undefined, deprecated?: string | ... 1 more ... | undefined): Argv<...>', gave the following error. Argument of type '(yargs: any) => any' is not assignable to parameter of type '{ [key: string]: Options; }'. Index signature is missing in type '(yargs: any) => any'. 120 | }; 121 |

    122 | YargsParser.command( | ^^^^^^^^^^^^^^^^^^^^ 123 | 'serve ', | ^^^^^^^^^^^^^^^^^ 124 | 'start the server', | ^^^^^^^^^^^^^^^^^ 125 | yargs => { | ^^^^^^^^^^^^^^^^^ 126 | yargs.positional('spec', { | ^^^^^^^^^^^^^^^^^ 127 | describe: 'path or URL to your spec', | ^^^^^^^^^^^^^^^^^ 128 | }); | ^^^^^^^^^^^^^^^^^ 129 | | ^^^^^^^^^^^^^^^^^ 130 | yargs.options('title', { | ^^^^^^^^^^^^^^^^^ 131 | describe: 'Page Title', | ^^^^^^^^^^^^^^^^^ 132 | type: 'string', | ^^^^^^^^^^^^^^^^^ 133 | }); | ^^^^^^^^^^^^^^^^^ 134 | | ^^^^^^^^^^^^^^^^^ 135 | yargs.option('s', { | ^^^^^^^^^^^^^^^^^ 136 | alias: 'ssr', | ^^^^^^^^^^^^^^^^^ 137 | describe: 'Enable server-side rendering', | ^^^^^^^^^^^^^^^^^ 138 | type: 'boolean', | ^^^^^^^^^^^^^^^^^ 139 | }); | ^^^^^^^^^^^^^^^^^ 140 | | ^^^^^^^^^^^^^^^^^ 141 | yargs.option('h', { | ^^^^^^^^^^^^^^^^^ 142 | alias: 'host', | ^^^^^^^^^^^^^^^^^ 143 | type: 'string', | ^^^^^^^^^^^^^^^^^ 144 | default: '127.0.0.1', | ^^^^^^^^^^^^^^^^^ 145 | }); | ^^^^^^^^^^^^^^^^^ 146 | | ^^^^^^^^^^^^^^^^^ 147 | yargs.option('p', { | ^^^^^^^^^^^^^^^^^ 148 | alias: 'port', | ^^^^^^^^^^^^^^^^^ 149 | type: 'number', | ^^^^^^^^^^^^^^^^^ 150 | default: 8080, | ^^^^^^^^^^^^^^^^^ 151 | }); | ^^^^^^^^^^^^^^^^^ 152 | | ^^^^^^^^^^^^^^^^^ 153 | yargs.option('w', { | ^^^^^^^^^^^^^^^^^ 154 | alias: 'watch', | ^^^^^^^^^^^^^^^^^ 155 | type: 'boolean', | ^^^^^^^^^^^^^^^^^ 156 | }); | ^^^^^^^^^^^^^^^^^ 157 | | ^^^^^^^^^^^^^^^^^ 158 | yargs.options('disable-google-font', { | ^^^^^^^^^^^^^^^^^ 159 | describe: 'Disable Google Font', | ^^^^^^^^^^^^^^^^^ 160 | type: 'boolean', | ^^^^^^^^^^^^^^^^^ 161 | default: false, | ^^^^^^^^^^^^^^^^^ 162 | }); | ^^^^^^^^^^^^^^^^^ 163 | | ^^^^^^^^^^^^^^^^^ 164 | yargs.demandOption('spec'); | ^^^^^^^^^^^^^^^^^ 165 | return yargs; | ^^^^^^^^^^^^^^^^^ 166 | }, | ^^^^^^^^^^^^^^^^^ 167 | async argv => { | ^^^^^^^^^^^^^^^^^ 168 | const config: Options = { | ^^^^^^^^^^^^^^^^^ 169 | ssr: argv.ssr as boolean, | ^^^^^^^^^^^^^^^^^ 170 | title: argv.title as string, | ^^^^^^^^^^^^^^^^^ 171 | watch: argv.watch as boolean, | ^^^^^^^^^^^^^^^^^ 172 | disableGoogleFont: argv.disableGoogleFont as boolean, | ^^^^^^^^^^^^^^^^^ 173 | templateFileName: argv.template as string, | ^^^^^^^^^^^^^^^^^ 174 | templateOptions: argv.templateOptions || {}, | ^^^^^^^^^^^^^^^^^ 175 | redocOptions: getObjectOrJSON(argv.options), | ^^^^^^^^^^^^^^^^^ 176 | }; | ^^^^^^^^^^^^^^^^^ 177 | | ^^^^^^^^^^^^^^^^^ 178 | try { | ^^^^^^^^^^^^^^^^^ 179 | notifyUpdateCliVersion(); | ^^^^^^^^^^^^^^^^^ 180 | await serve(argv.host as string, argv.port as number, argv.spec as string, config); | ^^^^^^^^^^^^^^^^^ 181 | } catch (e) { | ^^^^^^^^^^^^^^^^^ 182 | handleError(e); | ^^^^^^^^^^^^^^^^^ 183 | } | ^^^^^^^^^^^^^^^^^ 184 | }, | ^^^^^^^^^^^^^^^^^ 185 | [ | ^^^^^^^^^^^^^^^^^ 186 | res => { | ^^^^^^^^^^^^^^^^^ 187 | console.log( | ^^^^^^^^^^^^^^^^^ 188 | \n⚠️ This command is deprecated. Use "npx @redocly/cli preview-docs petstore.yaml"\n, | ^^^^^^^^^^^^^^^^^ 189 | ); | ^^^^^^^^^^^^^^^^^ 190 | return res; | ^^^^^^^^^^^^^^^^^ 191 | }, | ^^^^^^^^^^^^^^^^^ 192 | ], | ^^^^^^^^^^^^^^^^^ 193 | ) | ^^^^^^^^^^^^^^^^^ 194 | .command( | ^^^^^^^^^^^^^^^^^ 195 | 'build ', | ^^^^^^^^^^^^^^^^^ 196 | 'build definition into zero-dependency HTML-file', | ^^^^^^^^^^^^^^^^^ 197 | builderForBuildCommand, | ^^^^^^^^^^^^^^^^^ 198 | handlerForBuildCommand, | ^^^^^^^^^^^^^^^^^ 199 | ) | ^^^^^^^^^^^^^^^^^ 200 | .command( | ^^^^^^^^^^^^^^^^^ 201 | 'bundle ', | ^^^^^^^^^^^^^^^^^ 202 | 'bundle spec into zero-dependency HTML-file [deprecated]', | ^^^^^^^^^^^^^^^^^ 203 | builderForBuildCommand, | ^^^^^^^^^^^^^^^^^ 204 | handlerForBuildCommand, | ^^^^^^^^^^^^^^^^^ 205 | [ | ^^^^^^^^^^^^^^^^^ 206 | res => { | ^^^^^^^^^^^^^^^^^ 207 | console.log(\n⚠️ This command is deprecated. Use "build" command instead.\n); | ^^^^^^^^^^^^^^^^^ 208 | return res; | ^^^^^^^^^^^^^^^^^ 209 | }, | ^^^^^^^^^^^^^^^^^ 210 | ], | ^^^^^^^^^^^^^^^^^ 211 | ) | ^^^^ 212 | .demandCommand() 213 | .options('t', { 214 | alias: 'template',

    ERROR in src/components/SideMenu/styled.elements.ts:1:10

    TS2305: Module '"../../../node_modules/classnames"' has no exported member 'default'.

    1 | import { default as classnames } from 'classnames'; | ^^^^^^^ 2 | import { darken } from 'polished'; 3 | 4 | import { deprecatedCss, ShelfIcon } from '../../common-elements';

    Type: Bug 
    opened by clabnet 0
Releases(v2.0.0)
Owner
Redocly
At last, API docs you can be proud of
Redocly
Pyoccur - Python package to operate on occurrences (duplicates) of elements in lists

pyoccur Python Occurrence Operations on Lists About Package A simple python package with 3 functions has_dup() get_dup() remove_dup() Currently the du

Ahamed Musthafa 6 Jan 07, 2023
Mayan EDMS is a document management system.

Mayan EDMS is a document management system. Its main purpose is to store, introspect, and categorize files, with a strong emphasis on preserving the contextual and business information of documents.

3 Oct 02, 2021
learn python in 100 days, a simple step could be follow from beginner to master of every aspect of python programming and project also include side project which you can use as demo project for your personal portfolio

learn python in 100 days, a simple step could be follow from beginner to master of every aspect of python programming and project also include side project which you can use as demo project for your

BDFD 6 Nov 05, 2022
Deduplicating archiver with compression and authenticated encryption.

More screencasts: installation, advanced usage What is BorgBackup? BorgBackup (short: Borg) is a deduplicating backup program. Optionally, it supports

BorgBackup 9k Jan 09, 2023
layout-parser 3.4k Dec 30, 2022
The sarge package provides a wrapper for subprocess which provides command pipeline functionality.

Overview The sarge package provides a wrapper for subprocess which provides command pipeline functionality. This package leverages subprocess to provi

Vinay Sajip 14 Dec 18, 2022
This repository outlines deploying a local Kubeflow v1.3 instance on microk8s and deploying a simple MNIST classifier using KFServing.

Zero to Inference with Kubeflow Getting Started This repository houses all of the tools, utilities, and example pipeline implementations for exploring

Ed Henry 3 May 18, 2022
A PyTorch implementation of Deep SAD, a deep Semi-supervised Anomaly Detection method.

Deep SAD: A Method for Deep Semi-Supervised Anomaly Detection This repository provides a PyTorch implementation of the Deep SAD method presented in ou

Lukas Ruff 276 Jan 04, 2023
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition.

Master (2.4.25-SNAPSHOT): 3.0.31-SNAPSHOT: Maven Central ⭐ ⭐ ⭐ If you would like to contribute, please refer to guidelines and a list of open tasks. ⭐

Swagger 15.2k Dec 31, 2022
level2-data-annotation_cv-level2-cv-15 created by GitHub Classroom

[AI Tech 3κΈ° Level2 P Stage] κΈ€μž κ²€μΆœ λŒ€νšŒ νŒ€μ› μ†Œκ°œ κΉ€κ·œλ¦¬_T3016 λ°•μ •ν˜„_T3094 μ„μ§„ν˜_T3109 손정균_T3111 μ΄ν˜„μ§„_T3174 μž„μ’…ν˜„_T3182 Overview OCR (Optimal Character Recognition) 기술

6 Jun 10, 2022
charcade is a string manipulation library that can animate, color, and bruteforce strings

charcade charcade is a string manipulation library that can animate, color, and bruteforce strings. Features Animating text for CLI applications with

Aaron 8 May 23, 2022
Easy OpenAPI specs and Swagger UI for your Flask API

Flasgger Easy Swagger UI for your Flask API Flasgger is a Flask extension to extract OpenAPI-Specification from all Flask views registered in your API

Flasgger 3.1k Jan 05, 2023
Data science on SDGs - Udemy Online Course Material: Data Science on Sustainable Development Goals

Data Science on Sustainable Development Goals (SDGs) Udemy Online Course Material: Data Science on Sustainable Development Goals https://bit.ly/data_s

Frank Kienle 1 Jan 04, 2022
Searches a document for hash tags. Support multiple natural languages. Works in various contexts.

ht-getter Searches a document for hash tags. Supports multiple natural languages. Works in various contexts. This package uses a non-regex approach an

Rairye 1 Mar 01, 2022
A collection of lecture notes, drawings, flash cards, mind maps, scripts

Neuroanatomy A collection of lecture notes, drawings, flash cards, mind maps, scripts and other helpful resources for the course "Functional Organizat

Georg Reich 3 Sep 21, 2022
A Sublime Text plugin to select a default syntax dialect

Default Syntax Chooser This Sublime Text 4 plugin provides the set_default_syntax_dialect command. This command manipulates a syntax file (e.g.: SQL.s

3 Jan 14, 2022
Automated Integration Testing and Live Documentation for your API

Automated Integration Testing and Live Documentation for your API

ScanAPI 1.3k Dec 30, 2022
A repository of links with advice related to grad school applications, research, phd etc

A repository of links with advice related to grad school applications, research, phd etc

Shaily Bhatt 946 Dec 30, 2022
Anomaly Detection via Reverse Distillation from One-Class Embedding

Anomaly Detection via Reverse Distillation from One-Class Embedding Implementation (Official Code ⭐️ ⭐️ ⭐️ ) Environment pytorch == 1.91 torchvision =

73 Dec 19, 2022
A curated list of awesome tools for Sphinx Python Documentation Generator

Awesome Sphinx (Python Documentation Generator) A curated list of awesome extra libraries, software and resources for Sphinx (Python Documentation Gen

Hyunjun Kim 831 Dec 27, 2022