{"id":18614971,"url":"https://github.com/andrewjbateman/ionic-angular-soap","last_synced_at":"2026-04-16T08:37:49.488Z","repository":{"id":96860228,"uuid":"388248508","full_name":"AndrewJBateman/ionic-angular-soap","owner":"AndrewJBateman","description":":clipboard: App to show SOAP API data using the Simple Object Access Protocol (SOAP) messaging protocol over HTTP. Don't update to ng14","archived":false,"fork":false,"pushed_at":"2021-12-30T11:43:23.000Z","size":1443,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-12-27T02:45:10.383Z","etag":null,"topics":["angular","angular13","ionic","ionic6","rxjs","rxjs7","soap","soap-client","soap-web-services","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AndrewJBateman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2021-07-21T21:20:09.000Z","updated_at":"2023-09-24T16:18:15.000Z","dependencies_parsed_at":"2023-03-30T11:36:22.441Z","dependency_job_id":null,"html_url":"https://github.com/AndrewJBateman/ionic-angular-soap","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewJBateman%2Fionic-angular-soap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewJBateman%2Fionic-angular-soap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewJBateman%2Fionic-angular-soap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewJBateman%2Fionic-angular-soap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndrewJBateman","download_url":"https://codeload.github.com/AndrewJBateman/ionic-angular-soap/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239406450,"owners_count":19633024,"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":["angular","angular13","ionic","ionic6","rxjs","rxjs7","soap","soap-client","soap-web-services","typescript"],"created_at":"2024-11-07T03:27:39.759Z","updated_at":"2025-11-03T03:30:31.785Z","avatar_url":"https://github.com/AndrewJBateman.png","language":"TypeScript","readme":"# :zap: Ionic Angular SOAP\n\n* Ionic-Angular app that displays data about countries from a SOAP API\n* Data fetched using the SOAP web services, instead of Representational State Transfer (REST), over HTTP\n* Tutorial Code from [Simon Grimm](https://www.youtube.com/channel/UCZZPgUIorPao48a1tBYSDgg) - see [:clap: Inspiration](#clap-inspiration) below\n* **Note:** to open web links in a new window use: _ctrl+click on link_\n\n![GitHub repo size](https://img.shields.io/github/repo-size/AndrewJBateman/ionic-angular-soap?style=plastic)\n![GitHub pull requests](https://img.shields.io/github/issues-pr/AndrewJBateman/ionic-angular-soap?style=plastic)\n![GitHub Repo stars](https://img.shields.io/github/stars/AndrewJBateman/ionic-angular-soap?style=plastic)\n![GitHub last commit](https://img.shields.io/github/last-commit/AndrewJBateman/ionic-angular-soap?style=plastic)\n\n## :page_facing_up: Table of contents\n\n* [Ionic Angular Soap](#ionic-angular-soap)\n  * [:page_facing_up: Table of contents](#page_facing_up-table-of-contents)\n  * [:books: General info](#books-general-info)\n  * [:camera: Screenshots](#camera-screenshots)\n  * [:signal_strength: Technologies](#signal_strength-technologies)\n  * [:floppy_disk: Setup](#floppy_disk-setup)\n  * [:computer: Code Examples](#computer-code-examples)\n  * [:cool: Features](#cool-features)\n  * [:clipboard: Status \u0026 To-Do List](#clipboard-status--to-do-list)\n  * [:clap: Inspiration](#clap-inspiration)\n  * [:file_folder: License](#file_folder-license)\n  * [:envelope: Contact](#envelope-contact)\n\n## :books: General info\n\n* SOAP uses eXtensible Markup Language (XML)\n* The SOAP API data is from the [DataFlex Web Service](http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso) - no API key needed\n* [ngx-soap](https://www.npmjs.com/package/ngx-soap) requires a list of dependencies, including [browser buffer module](https://www.npmjs.com/package/buffer), [concat-stream](https://www.npmjs.com/package/concat-stream) to collect all the data from a stream into a single buffer, [core-js](https://www.npmjs.com/package/core-js) modular standard library, [crypto-js](https://www.npmjs.com/package/crypto-js) library of crypto standards, [events](https://www.npmjs.com/package/events) event emitter, [lodash](https://www.npmjs.com/package/lodash) library, [sax](https://www.npmjs.com/package/sax) sax-style parser for XML and HTML, [stream](https://www.npmjs.com/package/stream) for Node.js streams in the browser \u0026 [uuid](https://www.npmjs.com/package/uuid) for creation of RFC4122 UUIDs. This creates a huge vendor build bundle (5.29MB) - see source-map image\n* [source-map-explorer](https://www.npmjs.com/package/source-map-explorer) installed globally and used to generate Source-map\n* [Postman List of SOAP APIs](https://documenter.getpostman.com/view/8854915/Szf26WHn#33a2b225-11a6-48d3-a695-fb0989cc4971)\n* [This file](http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL) was copied into `assets/CountryInfoServices.xml` as the WSDL document\n* SOAP does not have to be used with HTTP although in this app it is\n\n## :camera: Screenshots\n\n![Ionic page](./img/country.png)\n![Ionic page](./img/map.png)\n\n## :signal_strength: Technologies\n\n* [Ionic v6](https://ionicframework.com/)\n* [Angular v13](https://angular.io/)\n* [Ionic/angular v6](https://www.npmjs.com/package/@ionic/angular)\n* [rxjs v7](https://rxjs.dev/) Reactive Extensions library\n* [ngx-soap v0.7.0](https://www.npmjs.com/package/ngx-soap/v/0.2.1) SOAP client for browser.\n* [uuid v3.3.2](https://www.npmjs.com/package/uuid) for the creation of RFC4122 UUIDs. Do not update to latest version or the app will not work.\n* [Web Services Definition Language WSDL](https://www.w3.org/TR/wsdl.html) structured communications language used in conjuction with the SOAP protocol over HTTP\n\n\n## :floppy_disk: Setup\n\n* Run `npm i` to install dependencies\n* Run `ionic serve` to start the server on _localhost://8100_\n* Run `npm run lint` to lint entire app. No linting errors\n* Run `npm run build` to create a build file\n* Run `npm run build --prod` to create a build file with named chunks and a source map\n* Run `source-map-explorer www/main*.js` to view source map\n\n## :computer: Code Examples\n\n* `data.service.ts` creating a SOAP client\n\n```typescript\nconstructor(private soap: NgxSoapService) {\n  this.soap.createClient('./assets/CountryInfoService.xml').then((client) =\u003e {\n    this.client = client;\n    this.clientReady.next(true);\n  });\n}\n```\n\n## :cool: Features\n\n* SOAP is highly standardized, allows for automation in certain cases, and is more secure\n* ACID stands for Atomicity, Consistency, Isolation, and Durability, an enterprise-grade transaction quality and one of the reasons why SOAP is still used when exchanging sensitive information in enterprise architectures.\n* SOAP APIs almost always use a WSDL document.\n* SOAP supports stateful and stateless operations.\n* XML response messages can include an error code and its explanation.\n\n## :clipboard: Status \u0026 To-do list\n\n* Status: Working\n* To-do: Nothing.\n\n## :clap: Inspiration\n\n* [Simon Grimm: How to use a SOAP API with Ionic](https://www.youtube.com/watch?v=96Zvzomz4Uw\u0026t=68s)\n* [SmartBear: SOAP vs REST. What's the Difference?](https://smartbear.com/blog/soap-vs-rest-whats-the-difference/)\n* [Alexsoft: What is SOAP: Formats, Protocols, Message Structure, and How SOAP is Different from REST](https://www.altexsoft.com/blog/engineering/what-is-soap-formats-protocols-message-structure-and-how-soap-is-different-from-rest/)\n* [5 Tips to Improve Ionic Angular App Performance](https://ionicframework.com/blog/5-tips-to-improve-ionic-angular-app-performance/)\n\n## :file_folder: License\n\n* N/A\n\n## :envelope: Contact\n\n* Repo created by [ABateman](https://github.com/AndrewJBateman), email: gomezbateman@yahoo.com\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewjbateman%2Fionic-angular-soap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrewjbateman%2Fionic-angular-soap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewjbateman%2Fionic-angular-soap/lists"}