InterSystems API Management (IAM) - a new feature of the InterSystems IRIS Data Platform, enables you to monitor, control and govern traffic to and from web-based APIs within your IT infrastructure. In case you missed it, here is the link to the announcement. And here's an article explaining how to start working with IAM.

In this article, we would use InterSystems API Management to Load Balance an API.

In our case, we have 2 InterSystems IRIS instances with /api/atelier REST API that we want to publish for our clients.

There are many different reasons why we might want to do that, such as:

  • Load balancing to spread the workload across servers
  • Blue-green deployment: we have two servers, one "prod", other "dev" and we might want to switch between them
  • Canary deployment: we might publish the new version only on one server and move 1% of clients there
  • High availability configuration
  • etc.
71
4 3 386
Question
Larry Pinsky · Jan 20, 2021
Multiple Threads In Operations

I have a BPL that calls a business service (actually does lots of other things unrelated to my question).  We receive an acknowledgement back containing data that is processed in the BPL and sent to the source system. The process of sending to our downstream system "A" and receiving the response takes about 20 seconds per transaction (very slow on system A's side).  Due to this slowness, we end up with a backlog close to 1000 messages by the end of the workday.

00
0 4 68

I want to consume external websocket api, URL looks like this:

wss://site.com/ws/v2/?&token=<token>

Checked with external tool (Simple WebSocket Client) that websocket works and I can consume the data.

In Cache the relevant functionality is offered by %IO.Socket class.

set sock = ##class(%IO.Socket).%New()
set sock.SSLConfig = "MyEmptySSLConfig"
set sock.TranslationTable="UTF8"
do sock.Open("site.com/ws/v2/?&token=<token>","443", 10,.sc)

However I get this error:

00
0 13 664
Article
Robert Cemper · Feb 8, 2019 2m read
Client for WebSockets based on Node.js

WebSockets as a communication technology wins increasing importance.
In the SAMPLES namespace, you find a nice example for running a WebSocket Server.
There is also a useful example for a Browser Client. JavaScript does most of the work. 

My point is:
How to consume the output of a WebSocket Server in your application?

120
0 1 346

Hi,

I create a WebService in Machine One, with some process, i tested this webservice with SOAPUI, worked.

After that i create a simple Business Operation, SOAP Adapter, based on WebClient created with SOAP Wizzard, the problem with that is on response var, i have empty var on my operation, somebody have some Ideas ? 

00
0 11 449

Using SOAP Web Services or REST API Resources, if you want to deliver strategic digital assets for your organization, SOA aproach is an excellent option. The InterSystems IRIS supports like a charm the SOA principles with Contract First technique to model services aligned with the business, and create the services from the service contracts (Open API or WSDL).

20
2 0 159

Hello Community, 

I want to secure a SOAP Webservice (an EnsLib.SOAP.Service one, if that matters) adding a SSL/Username Policy to it. As im not sure how detailed my request here should get, ill try giving a detailed as-is description of my setup, what I've tried, how I tried to test the connection and what problems including some logs I ran into. 

As a small foreword: I'm pretty new to the whole security aspect of intersystems and soap itself. 

System:

10
0 3 203
Article
Daniel Kutac · Feb 11, 2019 4m read
Using Oauth2 with SOAP (Web)Services

Hi guys,

 

Couple days ago, a customer approached me with the wish to enhance their existing legacy application, that uses SOAP (Web)Services so it shares the same authorization with their new application API based on REST. As their new application uses OAuth2, the challenge was clear; how to pass access token with SOAP request to the server.

After spending some time on Google, it turned out, that one of possible ways of doing so was adding an extra header element to the SOAP envelope and then making sure the WebService implementation does what is needed to validate the access token.

60
1 1 4,472
Question
Orlando Lagman · Jan 16, 2020
debugging web client

I used the soap wizard to create a web client based on the wsdl.  I was able to get a valid response back, and now it looks like the error is in decrypting the soap message response "inbound"

ERROR #6284: Security header error: SecurityTokenUnavailable.

00
0 1 192

Working on a project to call a web service and the soap header has custom header elements that need to be signed. i reviewed the %soap.inc and didn't see any appropriate macro  

EBS and IDP elements need to be signed

 

here's a provided header sample

 

this a sample output that I created.

00
0 1 105

I am trying to use the %ListOfDataTypes functionality, but am hitting a limit of 50 characters for each entry, when being used in a Web Service.  Is there a way to increase the number of characters that can be used in the %ListOfDataTypes through a web service? 

11
1 7 221

In the first article I started discussing RESTForms - REST API for your persistent classes. We talked about basic features, now, I'd like to discuss advanced features - mainly queries capabilites:

  • Basic queries
  • Query arguments
  • Custom queries

Queries

Queries allow getting slices of data, based on arbitrary criteria. There are two query types in RESTForms:

  • Basic queries work for all RESTForms classes once defined and they differ only by the field list
  • Custom queries work only for the classes in which they are specified and available, but the developer has full access to query text
30
1 2 1,107

We have a SOAP web service that we call to retrieve a stream of a PDF file. The web service is written by another group in our company (not a Cache group). We are running into one issue where it seems that the PDF is too big and when it is sent to us we get this "ERROR #6301: SAX XML Parser Error: <STORE>". The stream is about 8mb. This is the first time that we have encountered this issue.

We have a WRC ticket open about this but doing some research, we found that if we increase the $ZSTORAGE then we no longer get this error when we call the web service for this 8mb file.

00
0 4 539

Hello

 

I am trying to import a WSDL using the wizard and it outputs:

ERROR #6413: Element 'wsdl:binding:operation:msg': corresponding to message null : http://services.sanidad....

 

 

I have tried to find more information:

 

It is close to this case, however it is not the same error number:

 

00
0 0 150