--- title: Using the Redoc HTML element --- # Using the Redoc HTML element ## TL;DR final code example ```html Redoc ``` :::attention Running Redoc locally requires an HTTP server Loading local OpenAPI definitions is impossible without running a web server because of issues with [same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy) and other security reasons. ::: ### Running Redoc locally If you want to view your Redoc output locally, you can simulate an HTTP server. #### Using Redocly OpenAPI CLI Redocly OpenAPI CLI is an open source command-line tool that includes a command for simulating an HTTP server to provide a preview of your OpenAPI definition locally. If you have [OpenAPI CLI](https://redoc.ly/docs/cli/#installation-and-usage) installed, `cd` into your project directory and run the following command: ```bash openapi preview-docs openapi.yaml ``` By default, without providing a port, the preview starts on port 8080, and can be accessed at `http://localhost:8080`. To exit the preview, use `control+C`. #### Using Python If you have [Python 3](https://www.python.org/downloads/) installed, `cd` into your project directory and run the following command: ```python python3 -m http.server ``` If you have [Python 2](https://www.python.org/downloads/) installed, `cd` into your project directory and run the following command: ```python python -m SimpleHTTPServer 8000 ``` The output after entering the command provides the local URL where the preview can be accessed. To exit the preview, use `control-C`. #### Using Node.js If you have [Node.js](https://nodejs.org/en/download/) installed, install `http-server` using the following npm command: ```bash npm install -g http-server ``` Then, `cd` into your project directory and run the following command: ```node http-server ``` The output after entering the command provides the local URL where the preview can be accessed. To exit the preview, use `control-C`. ## Step 1 - Install Redoc You can install Redoc using one of the following package managers: - [npm](https://docs.npmjs.com/about-npm) - [yarn](https://classic.yarnpkg.com/en/docs/getting-started) :::attention Initialize your package manager If you do not have a `package.json` file in your project directory, you need to add one by initializing npm or yarn in your project. Use the command `npm init` for npm, or `yarn init` for yarn. These initialization commands will lead you through the process of creating a `package.json` file in your project. For more information, see [Creating a package.json file](https://docs.npmjs.com/creating-a-package-json-file) in the npm documentation or [Yarn init](https://classic.yarnpkg.com/en/docs/cli/init/) in the yarn documentation. ::: ### Install Redoc with yarn After navigating to your project directory in your terminal, use the following command: ```bash yarn add redoc ``` ### Install Redoc with npm After navigating to your project directory in your terminal, use the following command: ```bash npm i redoc ``` ## Step 2 - Reference the Redoc script You can reference the Redoc script using either a link to the files hosted on a CDN or the files located in your `node modules` folder. ### CDN link To reference the Redoc script with a CDN link: ```html ``` ### Node modules link To reference the Redoc script with a node modules link: ```html ``` ## Step 3 - Add the element You can add the element to your HTML page and reference your OpenAPI definition using the `spec-url` attribute, or you can initialize Redoc using a globally exposed Redoc object. ### Using the `spec-url` attribute To add the element with the `spec-url` attribute: ```html ``` #### Examples ```html ``` You can also use a local file (JSON or YAML) in your project, for instance: ```html ``` ### Using a Redoc object To add the element with a globally exposed Redoc object: ```js Redoc.init(specOrSpecUrl, options, element, callback) ``` - `specOrSpecUrl`: Either a JSON object with the OpenAPI definition or a URL to the definition in JSON or YAML format. - `options`: See [options object](https://redoc.ly/docs/api-reference-docs/configuration/) reference. - `element`: DOM element Redoc will be inserted into. - `callback`(optional): Callback to be called after Redoc has been fully rendered. It is also called on errors with `error` as the first argument. #### Examples ```html ``` You can also use a local file (JSON or YAML) in your project, for instance: ```html ```