6 Followers · 341 Posts

Application Programming Interface (API) is a set of subroutine definitions, protocols, and tools for building application software. In general terms, it is a set of clearly defined methods of communication between various software components.

Learn more.

New
Question Oliver Wilms · May 9

I want to develop a REST API for uploading PDF files. I started with OPENAPI spec file. When I test, I get error 8727 referencing missing required parameter file.

"{"$c(13,10,9)"""errors"":[ {"$c(13,10,9,9,9)"""code"":8727,"$c(13,10,9,9,9)"""domain"":""%ObjectErrors"","$c(13,10,9,9,9)"""error"":""ERROR #8727: Parameter required: file."","$c(13,10,9,9,9)"""id"":""RESTRequired"","$c(13,10,9,9,9)"""params"":[""file"""$c(13,10,9,9,9)"]"$c(13,10,9,9)"}"$c(13,10,9)"],"$c(13,10,9)"""summary"":""ERROR #8727: Parameter required: file.

1
0 54
New
Article David Hockenbroch · May 7 8m read

In our previous article, we explored the basics of unit testing in IRIS and the ways to apply it to a REST API. We even figured out how to test logic before finalizing network configurations and authentication, allowing us to focus solely on testing the API contents. Today, we will build upon that foundation and elevate our unit testing strategy by using another tool: %Populate .

At first glance, the %Populate class appears to be very simple. You can create a class that extends both %Persistent and %Populate and inherit a Populate method designed to generate randomized records.

0
0 43
Article Ariel Glikman · Sep 16, 2025 14m read

One of the recommendations when deploying InterSystems Technologies for production is to set up High Availability. The recommended API Manager for these InterSystems Technologies is the InterSystems API Manager (IAM). IAM (essentially Kong Gateway) has multiple deployment topologies.

If you are looking for high availability you could use:

a) Kong Traditional Mode: Multiple Node Clusters

b) Hybrid Mode

c) DB-less Mode

Before we break them down let's first understand the out of the box deployment that is provided by InterSystems: Installing IAM Version 3.10.

3
4 392
Contestant
Article Roy Leonov · Apr 14 7m read

We didn't start with a big AI strategy.

We had a legacy InterSystems Caché 2018 application, a lot of old business logic, and a practical need: build a new UI and improve code that had been running for years. At first, I thought an AI coding agent would help only with a small part of the work. Maybe some boilerplate, some REST work around the system, and a bit of help reading old ObjectScript.

In practice, it became much more than that.

0
4 93
Article Ariel Glikman · Apr 1 6m read

This article is intended as a beginner level article for people that want to learn how to use OAuth2 in their web applications natively.

There is an accompanying video/demo that may be helpful here: 

and you can reproduce this locally with the Open Exchange application attached.

OAuth2 as a native authentication type for web applications

OAuth (Open Authorization) 2.0 is a standard way to let one application call another application’s API without sharing a username and password.

0
3 103
Article Lorenzo Scalese · Mar 23 9m read

Introduction — The Problem with AI Streaming in ObjectScript

Today, I would like to introduce a problem I encountered and the solution I found when integrating AI APIs into an ObjectScript application. My initial tests were successful, yet somewhat frustrating.

The HTTP call worked; the request was properly sent to my LLM APIs. But then, silence... a long wait. Eventually, the entire response arrived as a single block.

Technically, it worked, but the user experience was disappointing compared to a ChatGPT session.

7
7 286
Article Guillaume Rongier · Mar 13 6m read

ObjectScript Search icon

If you have ever dug through a large IRIS namespace looking for where a particular string, method call, or pattern was used, you know the pain: there was no built-in way to do a grep-style search across your server-side ObjectScript code from VS Code — at least not without jumping through some hoops.

That is what ObjectScript Search fixes.

Try it today with a simple install from the VS Code Marketplace. If you don't like it, uninstalling is just as easy. But I think you will like it — it is a huge quality-of-life improvement for anyone doing ObjectScript development in VS Code.


9
3 271
Article Bruno Santos · Mar 19 8m read

The problem

How many times have we migrated an IRIS Instance to another machine, maybe even another version, and after a few days realized we forgot that one SSL Configuration critical for a Business Operations to work? Or maybe a credential, or a lonely class in a package by itself?

The solution

The simple solution is to make a checklist¹. A checklist of the entities we have to move. But simple checklists on Word documents are often forgotten, or just ignored.

3
3 174
Article Tomo Okuyama · Mar 1 6m read

Why This Integration Matters

InterSystems continues to push AI capabilities forward natively in IRIS — vector search, MCP support, and Agentic AI capabilities. That roadmap is important, and there is no intention of stepping back from it.

But the AI landscape is also evolving in a way that makes ecosystem integration increasingly essential. Tools like Dify — an open-source, production-grade LLM orchestration platform — have become a serious part of enterprise AI stacks.

2
0 202
Article Oliver Wilms · Feb 25 2m read

iris-budget

I created iris-budget app for the InterSystems Full Stack Contest in 2026. By full stack, we mean a frontend web or mobile application that inserts, updates, or deletes data in InterSystems IRIS via REST API, Native API, ODBC/JDBC, or Embedded Python.

My app uses multiple REST APIs to add a new category or retrieve a list of categories of expenses and income.

First web application /csp/coffee

I inherited /csp/coffee from module.xml in iris-fullstack-template.

Second web application /csp/budget

For this project, I created a swagger file called "budget.json.

0
0 96
Article Marco Bahamondes · Jun 24, 2025 3m read

Introduction

InterSystems IRIS allows you to build REST APIs using ObjectScript classes and the %CSP.REST framework. This enables the development of modern services to expose data for web apps, mobile apps, or system integrations.

In this article, you'll learn how to create a basic REST API in InterSystems IRIS, including:

  • A persistent data class
  • A REST class with GET and POST methods
  • A web application to expose the API
  • A full demonstration using Docker

4
3 400
Article Ashok Kumar Thangavel · Feb 20 3m read

This is an excellent candidate for a developer community post (like Dev.to, Medium, or the InterSystems Community). It bridges the gap between high-level architecture and hands-on implementation.

Here is the summarized article format.


Building a Robust Asynchronous Queue Manager with InterSystems IRIS and Angular

As applications scale, handling heavy computational tasks synchronously becomes a bottleneck. Whether it's processing large data sets, sending high-volume emails, or managing API integrations, a decoupled architecture is essential.

0
0 92
Article David Hockenbroch · Feb 18 7m read

In the previous article, we examined how we can use the %CSP.Request and %CSP.Response classes to test a REST API without having the API fully set up and accessible across a network with an authentication mechanism. In this article, we will build on that foundation to perform some simple unit testing of one of our REST API methods.

The unit testing framework requires a couple of setup steps before we can use it. First, we have to ensure that the unit testing portion of the management portal is enabled so we can review the results of our tests.

0
2 160
Question Robert Hildebrand · Feb 5

Hi,

I want to consume an API that provides HL7 messages. To achieve this, I have thought of the following workflow:

I have created a business service that periodically triggers a business process. The trigger request is forwarded to a business operation. There, a %Net.HttpRequest is assembled from scratch and then sent to the API endpoint. The corresponding HttpResponse then contains several HL7 messages encoded in UTF-8 in the message body. To further process the HL7 messages, the operation sends the HttpResponse back to the business process as EnsLib.HTTP.GenericMessage.

3
0 103
InterSystems Official Daniel Palevski · Feb 3

The third developer previews of InterSystems IRIS® data platform, InterSystems IRIS® for Health, and InterSystemsHealth Connect™ 2026.1 have been posted to the WRC developer preview site.  Containers can be found on our container registry and are tagged latest-preview.

These developer previews includes the dropping of Mac Intel support starting from 2026.1.0, and the adding back of Windows Server 2019 support to 2026.1.0.

Initial documentation can be found at these links below:

4
0 265
Question Hassan Mirza · Jan 27

Currently in the health connect code, we are using Epic FHIR API Patient.Create, code return 200 or 201 status values, we process the message based on this return values.

Now I need to use Epic FHIR Patient.$match API, need to check FHIR Error code 4101 for this API. I looked for FHIR statndard return code, but this this seems not standard code, please advice how can I check 4101 value?

1
0 90
Job Ratnesh Shrivastava · Jan 27

Job Title: InterSystems Developer / Specialist (IRIS / HealthShare)
Location: New York City, NY (Hybrid / Remote)
Duration: Contract (2+ years)
Experience: Min. 8 Years 


Job Summary

We are looking for an experienced InterSystems Developer / Specialist with expertise in InterSystems IRIS / HealthShare to support healthcare integration and interoperability initiatives. The ideal candidate should have hands-on experience in ObjectScript development, healthcare data standards, and integration protocols supporting EHR/HIE environments.


0
0 114
Article David Hockenbroch · Jan 7 7m read

There are numerous excellent tools available for testing your REST APIs, especially when they are live. Postman, various web browser extensions, and even custom ObjectScript written with %Net.HttpRequest objects can get the job done. However, it is often difficult to test just the REST API without inadvertently involving the authentication scheme, the web application configuration, or even network connectivity. Those are a lot of hoops to jump through just to test the code within your dispatch class. The good news is that if we take our time to understand the inner workings of the %CSP.REST class, we will find an alternative option suited for testing only the contents of the dispatch class. We can set up the request and response objects to invoke the methods directly.

5
7 352
Article José Pereira · Dec 7, 2025 16m read

Project Overview / Introduction

Developing and testing REST APIs in InterSystems IRIS often requires a significant amount of boilerplate code. While ObjectScript provides powerful tools for building APIs, writing consistent and repeatable tests can be time‑consuming. This is where IrisOASTestGen comes in.

IrisOASTestGen is a utility designed to generate the structure of test classes and the supporting utility code directly from an OpenAPI 2.0 specification

2
0 153
Article David Hockenbroch · Nov 3, 2025 8m read

When I was younger (a question about exactly how much younger is outside the scope of this article), the word “token” meant fun. You see, just a couple of times a year, I would get to go to an arcade and play some amusing video games with my friends.

These days, tokens signify security. JSON Web Token (JWT) Authentication has become one of the most popular standards for securing REST APIs. Fortunately for IRIS users, we have a straightforward way to set up applications to be protected this way. Yet, the idea is still similar to my old arcade days.

3
11 405
Question Dmitrii Baranov · Dec 14, 2025

Hi,

I need a simple function for formatting a string, like in Python or C#. That's easy:

Class Very.Very.Long.Class.Name
{
ClassMethod Format(fmt As %String, args...) As %String [ Language = python ]
{
return fmt.format(*args)
}
}

To simplify calls, I want to wrap the function into a macro:

ROUTINE StringUtil [Type=INC]

#define FMT(%fmt,%a0)                                           ##class(Very.Very.Long.Class.Name).Format(%fmt,%a0)
/// #define FMT(%fmt,%a0,%a1)                              ##class(Very.Very.Long.Class.Name).Format(%fmt,%a0,%a1)
/// #define FMT(%fmt,%a0,%a1,%a2)                      ##class(Very.Very.Long.Class.Name).Format(%fmt,%a0,%a1,%a2)
/// #define FMT(%fmt,%a0,%a1,%a2,%a3)              ##class(Very.Very.Long.Class.Name).Format(%fmt,%a0,%a1,%a2,%a3)
/// #define FMT(%fmt,%a0,%a1,%a2,%a3,%a4)      ##class(Very.Very.Long.Class.Name).Format(%fmt,%a0,%a1,%a2,%a3,%a4)
3
0 96
Article Yuri Marx · Dec 11, 2025 7m read

Supply Chain refers to a set of processes and activities performed by the company's business areas and its suppliers and partners (stakeholders), from the acquisition of raw materials, through production, to delivery to the end consumer. It can be better managed using SCM solutions with the orchestration of the InterSystems IRIS:

 

0
5 210
Article José Pereira · Dec 9, 2025 11m read

The previous article introduced IrisOASTestGen, a tool designed to generate REST API test code for InterSystems IRIS based on OpenAPI 2.0 specifications. It demonstrated how to scaffold test cases using the default templates bundled with OpenAPI Generator.

This follow-up focuses on the next natural step: customizing the generated test code. By extending the code generation logic with Mustache templates, it becomes possible to express richer semantics, implement CRUD-aware tests, and create more meaningful test suites.

0
0 111
Article Emil Polakiewicz · Mar 10 19m read

How to set up RAG for OpenAI agents using IRIS Vector DB in Python

In this article, I’ll walk you through an example of using InterSystems IRIS Vector DB to store embeddings and integrate them with an OpenAI agent.

To demonstrate this, we’ll create an OpenAI agent with knowledge of InterSystems technology. We’ll achieve this by storing embeddings of some InterSystems documentation in IRIS and then using IRIS vector search to retrieve relevant content—enabling a Retrieval-Augmented Generation (RAG) workflow.

Note: Section 1 details how process text into embeddings.

0
0 121
Article Laurel James (GJS) · Dec 4, 2025 2m read

Welcome to the monthly recap of updates and releases to VS Code and InterSystems-related extensions that are relevant to IRIS developers. 

We'll break down the updates that are relevant to InterSystems developers with tips on how they can be applied to your day-to-day projects. 

Don't forget, if you're migrating from InterSystems Studio to VS Code, or want to deepen your knowledge, check out the VS Code training courses from George James Software: georgejames.com/vscode-training

VS Code version 1.106

Unified AI-agent dashboard - 1.

0
0 116
Article Vachan C Rannore · Nov 21, 2025 3m read

Hola amigo! 😊 Cómo estás hoy,

I would like to share a small part of my learnings from my first ever official project: POS/EDC machine integration with our billing system. This was an exciting challenge where I got hands-on experience working with APIs and vendors. 

How does a Payment Machine actually work?

It's simple, start by initiating/creating a transaction, then retrieve its payment status.

Here, initiate/create refers to POST methodand Retrieve refers to GET.

0
2 157
Question Robert Hildebrand · Oct 30, 2025

Hello,
I am currently facing the task of retrieving or sending HL7 messages from a web API. Since we only send HL7 messages via internal sockets, web APIs are relatively new to me.
The following is my plan for the new interface:
I have created a new custom business service that periodically sends requests to a business process. In this business process, the HTTP request (HTTP.GenericMessage) is then created from scratch. The special feature is the "Authorisation" header field, where a signature is inserted, which consists of a base64-encoded hash value.

4
0 149