{"id":27272042,"url":"https://github.com/anhthang/soap-converter","last_synced_at":"2025-04-11T13:46:18.843Z","repository":{"id":40744263,"uuid":"144409371","full_name":"anhthang/soap-converter","owner":"anhthang","description":"Instantly convert SOAP/WSDL definitions to REST API specifications for use with Postman, OpenAPI/Swagger, and other API development tools.","archived":false,"fork":false,"pushed_at":"2025-04-11T11:59:47.000Z","size":703,"stargazers_count":29,"open_issues_count":2,"forks_count":10,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T13:18:45.452Z","etag":null,"topics":["openapi","postman","postman-collection","soap","soap-converter","swagger","wsdl"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/soap-converter","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anhthang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-08-11T18:31:00.000Z","updated_at":"2025-04-11T11:59:51.000Z","dependencies_parsed_at":"2025-03-04T14:19:42.768Z","dependency_job_id":"d63d13ee-772f-4f31-99b7-3f0482be5416","html_url":"https://github.com/anhthang/soap-converter","commit_stats":null,"previous_names":["buianhthang/soap-converter"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anhthang%2Fsoap-converter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anhthang%2Fsoap-converter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anhthang%2Fsoap-converter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anhthang%2Fsoap-converter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anhthang","download_url":"https://codeload.github.com/anhthang/soap-converter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248411275,"owners_count":21098877,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["openapi","postman","postman-collection","soap","soap-converter","swagger","wsdl"],"created_at":"2025-04-11T13:46:18.323Z","updated_at":"2025-04-11T13:46:18.826Z","avatar_url":"https://github.com/anhthang.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SOAP to REST API Converter\n\nInstantly convert SOAP/WSDL definitions to REST API specifications for use with Postman, OpenAPI/Swagger, and other API development tools. This simplifies integration with modern systems and allows you to leverage the power and flexibility of RESTful APIs.\n\n[![npm](https://flat.badgen.net/npm/v/soap-converter)](https://npm.im/soap-converter)\n![download](https://flat.badgen.net/npm/dt/soap-converter)\n![license](https://flat.badgen.net/npm/license/soap-converter)\n\n## Features\n\n- Convert SOAP WSDL files into:​\n  - **Postman Collection v2.1​**\n  - **OpenAPI 2.0 (Swagger), 3.0, and 3.1​**\n- Facilitate RESTful interactions with SOAP-based services​\n- Compatible with any REST client supporting OpenAPI/Swagger\n\n## Getting Started\n\n### Installation\n\nYou can install `soap-converter` globally or locally:​\n\n**Global Installation (Recommended)**:\n\n```bash\nyarn global add soap-converter\n# or\nnpm install -g soap-converter\n```\n\n**Local Installation**:\n\n```bash\nyarn add soap-converter\n# or\nnpm install soap-converter --save-dev\n```\n\n### Run the CLI\n\n```bash\nsoap-converter\n# or, if installed locally\nnpx soap-converter\n```\n\n### CLI Flow\n\n1. **Enter a WSDL URL or file path**\n2. **Choose output format**:\n   - `Postman Collection v2.1`\n   - `OpenAPI 2.0 (formerly Swagger 2.0)`\n   - `OpenAPI 3`\n3. **If OpenAPI selected** → choose version:\n   - `OpenAPI 3.0`\n   - `OpenAPI 3.1`\n4. **Enter full output path including filename** (e.g. `./converted/api.postman.json` or `./converted/api.openapi.json`)\n\n**Example**:\n\n```bash\n✔ Enter the URL or path to the WSDL file:\nhttps://graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php?wsdl\n\n✔ Choose an output format:\n❯ Postman Collection v2.1\n  OpenAPI 2.0 (formerly Swagger 2.0)\n  OpenAPI 3\n\n✔ Choose OpenAPI version:\n❯ OpenAPI 3.0\n  OpenAPI 3.1\n\n✔ Enter output file path:\n./converted/weather.openapi.json\n```\n\n## Example Usage\n\n1. Paste your WSDL URL\n2. Choose output format \u0026 version\n3. Set the desired file path\n4. Import the file into:\n   - **Postman** → Import → Collection\n   - **Swagger UI** → Upload OpenAPI file\n   - **Other REST tools** → Import as OpenAPI\n\n## Command Line Options\n\n| Option                          | Description                                                                                |\n|---------------------------------|--------------------------------------------------------------------------------------------|\n| `-i`, `--input`                 | URL or path to the WSDL file (required)                                                    |\n| `-t`, `--target`                | Output format: `Postman Collection v2.1`, `OpenAPI 2.0 (formerly Swagger)`, or `OpenAPI 3` |\n| `-v`, `--version`               | OpenAPI version (`3.0`, or `3.1`) — required if target is `OpenAPI 3`                      |\n| `-o`, `--output`                | Output path including filename (e.g. `./converted/weather.openapi.json`)                   |\n| `-k`, `--api-key-header`        | Add a custom API key header name (e.g. `X-API-Key`)                                        |\n| `--no-examples`                 | Skip generating example request/response payloads                                          |\n| `--no-inline-attributes`        | Avoid embedding XML attributes inline; separates them for better clarity                   |\n| `--use-security`                | Enable WS-Security in generated requests                                                   |\n| `--use-ibm-datapower-gateway`   | Add IBM DataPower Gateway-specific headers to requests                                     |\n| `-h`, `--help`                  | Show help message                                                                          |\n\n## Examples\n\n- Basic conversion to Postman\n\n  ```bash\n  soap-converter -i http://example.com/service.svc?wsdl -t Postman -o service.postman.json\n  ```\n\n- Conversion to Swagger (OpenAPI v2)\n\n  ```bash\n  soap-converter -i http://example.com/service.svc?wsdl -t Swagger -o service.swagger.json\n  ```\n\n- Conversion to OpenAPI v3.1\n\n  ```bash\n  soap-converter -i http://example.com/service.svc?wsdl -t OpenAPI -v 3.1 -o service.openapi.json\n  ```\n\n- Conversion to OpenAPI v3.1 with API key\n\n  ```bash\n  soap-converter -i http://example.com/service.svc?wsdl -t OpenAPI -v 3.1 -o service.openapi.json -k MyApiKey\n  ```\n\n- Conversion to OpenAPI v3.0 with no examples\n\n  ```bash\n  soap-converter -i http://example.com/service.svc?wsdl -t OpenAPI -v 3.0 -o service.openapi.json --no-examples\n  ```\n\n- Conversion with WS-Security enabled (works with any target)\n\n  ```bash\n  soap-converter -i http://example.com/service.svc?wsdl -t OpenAPI -v 3.1 -o service.openapi.json --use-security\n  ```\n\n- Conversion to Postman with IBM DataPower Gateway headers\n\n  ```bash\n  soap-converter -i http://example.com/service.svc?wsdl -t Postman -o service.postman.json --use-ibm-datapower-gateway\n  ```\n\n## Handling Complex WSDLs\n\nThis tool attempts to handle complex WSDLs, including those with imports and multiple namespaces. However, some unusual or non-standard WSDL structures might not be fully supported.\n\n## Troubleshooting\n\n- **Conversion failed:** Double-check the WSDL URL and ensure it is accessible. Examine the output for any error messages. If the WSDL is complex, try simplifying it or checking for non-standard elements.\n- **Authentication issues:** If your SOAP service requires authentication, use the `--api-key-header` option or `--use-security` if WS-Security is applicable.\n- **Incorrect output:** Verify the WSDL structure and the chosen target format.\n\nIf you encounter any issues, please create an Issue to report the problem, providing as much detail as possible, including the WSDL, the command you used, and any error messages you received. This will help in diagnosing and fixing the issue.\n\n## License\n\nThis project is released under the [MIT License](LICENSE). However, it includes dependencies that have different licensing terms. Specifically, it depends on [`apiconnect-wsdl`](https://www.npmjs.com/package/apiconnect-wsdl), which is licensed under the **IBM International Program License Agreement (IPLA)**.  \n\nUsers must review and comply with the IPLA before using this package.\n\nBy using this project, you acknowledge that some dependencies are subject to IBM’s licensing terms, which may impose additional restrictions beyond the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanhthang%2Fsoap-converter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanhthang%2Fsoap-converter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanhthang%2Fsoap-converter/lists"}