Skip to content

Latest commit

 

History

History
77 lines (57 loc) · 2.19 KB

README.md

File metadata and controls

77 lines (57 loc) · 2.19 KB

Angular2-Xmlrpc

An Angular (9+) service which provides XML-RPC communication methods.

This library was generated with Angular CLI version 11.2.6. Dependencies are requiring Angular 9, but this can probably be easily adapted to anything greater or equal to Angular 2.

This is actually a port from the AngularJS library Angular-Xmlrpc. NOTE: IE support has been dropped altogether.

Installation

npm install angular2-xmlrpc --save

How to use it ?

Configuration

First of all, add a dependency in your module:

import { XmlrpcModule } from 'angular2-xmlrpc'

@NgModule({
  ...
  imports: [
    ...
    XmlrpcModule
  ],
  ...
})
export class AppModule { }

You can use it in your application as any other service, and inject it in the constructor as usual.

import { XmlrpcService } from 'angular2-xmlrpc'

constructor(..., private xmlrpc:XmlrpcService, ...) {
}

XML-RPC Call

There is only one main method to call an XML-RPC method. In order to pass parameters, you have to wrap them in an array:

const xmlrpcCall = this.xmlrpc.callMethod(
  'http://localhost:8080/xmlrpc/endpoint',
  'method-name',
  ['string-param-1', 1, {'obj-param-3': {val1: 1, val2: 'x'}}]
)

The XML response from the server is wrapped in an Observable, and can be parsed to a JS object with the parseResponse method:

xmlrpcCall.subscribe(data => console.log(this.xmlrpc.parseResponse(data)))

Custom Headers

to set custom headers:

this.xmlrpc.setHeaders({
  'Custom-Header-1': 'Value-1',
  'Custom-Header-2': ['Value-2', 'Value-3', 'Value-4']
})
  • Note: this method returns an instance of HttpHeaders that will be used in the Angular HTTP request

Build & Test (Developers)

To build the project create an angular workspace (or use an existing one). For example:

ng new ng-workspace --create-application false

Create the library project:

ng generate library angular2-xmlrpc

fetch this repo from inside the project folder and buid it as library module from angular:

ng build angular2-xmlrpc 
ng test angular2-xmlrpc