# Add SOAP documentation from a WSDL file Transform your WSDL files into reference documentation by integrating them into your project. Give your users the tools they need to make the most of your SOAP APIs with comprehensive reference documentation. Either add individual schema files to your project alongside your other content, or use a [classic catalog](/docs/realm/config/catalog-classic) to showcase your SOAP APIs alongside OpenAPI and AsyncAPI APIs. ## About the SOAP API plugin The SOAP API documentation plugin (`@redocly/portal-plugin-soap-api`) uses a SOAP library to generate documentation from your WSDL files. When you add this plugin to your project, it automatically detects WSDL specification files and includes them as SOAP documentation pages. To be recognized, the specification files must have a `.wsdl` extension. ## Before you begin Make sure you have the following: - a `redocly.yaml` file in the root of your project - a `package.json` file in the root of your project - the Redocly package for the product you use (such as `@redocly/realm`) listed as a dependency in the `package.json` file Local dependencies required Redocly projects can be previewed locally without installing dependencies, but to add the SOAP plugin, you must have both Realm and the SOAP plugin installed as local dependencies. If you see the error `Theme "@redocly/portal-plugin-soap-api" not found`, then check that you have the `@redocly/realm` package listed in your `package.json` file. ## Install the Redocly SOAP API plugin To generate reference documentation for WSDL files, you must have the Redocly SOAP API plugin installed in your project. If you are working locally, you must install the plugin using a package manager. If you are working in Reunite, you must add the plugin as a dependency in your `package.json` file. ### Install in Reunite When you work in Reunite, you do not need to have a `package.json` file to build your project. However, if you need to install a plugin that is not included in the standard project, you do need a `package.json` file. If you are working in Reunite, to generate SOAP reference documentation from a WSDL file, you must add a `package.json` file with the Redocly SOAP API plugin listed as a dependency. Use the following example `package.json` file that includes the Redocly SOAP API plugin as a dependency, updating `*` with the [latest version](https://www.npmjs.com/package/@redocly/portal-plugin-soap-api): ```json package.json { "name": "demo project", "version": "1.0.0", "private": true, "description": "demo", "dependencies": { "@redocly/portal-plugin-soap-api": "*" } } ``` ### Install using a package manager Redocly projects can be previewed locally without installing dependencies, but to add the Redocly SOAP plugin, you must have both Realm and the SOAP plugin installed as local dependencies. To install the Redocly SOAP plugin, use one of the following commands, depending on the package manager you are using: npm ```sh npm npm install @redocly/portal-plugin-soap-api ``` yarn ```sh yarn yarn add @redocly/portal-plugin-soap-api ``` pnpm ```sh pnpm pnpm add @redocly/portal-plugin-soap-api ``` ### Enable the plugin in redocly.yaml After you have installed the plugin in your project, you must also enable it in your `redocly.yaml` file by adding it to the `plugins` object. To enable the Redocly SOAP API plugin in your project, add the following configuration to your `redocly.yaml` file at the root of your project: ```yaml redocly.yaml plugins: - '@redocly/portal-plugin-soap-api/plugin.js' ``` ## Add the WSDL file to your project If you only have one or two WSDL files, and you do not have a `sidebars.yaml` file in your project, to add SOAP API documentation to your project, place the WSDL files in your project, either at the root or in a folder. Afterward, the SOAP reference documentation is automatically added to your sidebar when you run your project. If you have a `sidebars.yaml` file in your project, you must add your WSDL file to your `sidebars.yaml` file for it to be included in your sidebar navigation menu. ## Use the sidebars.yaml file If you have a `sidebars.yaml` file in your project, you must add any files, including WSDL files, you want displayed in your sidebar to it. For more information on configuring a `sidebars.yaml` file for your project, see [Sidebar configuration](/docs/realm/navigation/sidebars). To add a WSDL file to your project with a `sidebars.yaml` file, add the `page` and `label` keys with the corresponding values for the WSDL file to your `sidebars.yaml` file, as in the following example: ```yaml sidebars.yaml - page: apis/sample-api.wsdl label: Sample API ``` If you have multiple API descriptions, you can group them to better organize your sidebar navigation menu. ### Use the `group` key for multiple descriptions If you have multiple WSDL files, you can use a `group` key for each so that the different endpoints are only revealed when selected. To add multiple WSDL files using `group` keys, update your `sidebars.yaml` file as in the following example: ```yaml sidebars.yaml - group: Sample product 1 API items: - page: apis/sample-api-1.wsdl label: Sample product 1 API - group: Sample product 2 API items: - page: apis/sample-product-2.wsdl label: Sample product 2 API ``` ## Resources - **[API catalog configuration](/docs/realm/config/catalog-classic)** - Organize multiple API descriptions including SOAP services with catalogs for better user experience and navigation - **[Sidebar navigation setup](/docs/realm/navigation/sidebars)** - Configure navigation structures to help users discover and access your SOAP API documentation content - **[Replay API explorer](/docs/realm/content/api-docs/replay)** - Add interactive API testing capabilities to your SOAP API reference documentation