I have a primary dispatch class that implements %CSP.REST.AccessCheck() for some high level access checks before the route table forwards the request to the implementation classes which also implement %CSP.REST.AccessCheck() for some lower level access checks. The idea is that we know where we are in the implementation class and what the user is trying to do, so it makes more sense to check some lower level items there rather than trying to parse out the request at the dispatch class.

0 5
0 58

Hi everybody,

I'm modifying a REST interface for a client but it seems impossible to me to modify HTTP Response Status and including custom HTTP Headers either.

My dispatch class (extending %CSP.REST) is contacted through a POST request and the latter is processed in a custom class (extending %CSP.REST as well) accessed as shown in the example below:

<Route Url="/test" Method="POST" Call="Custom.Test:Process" />

Within the processing class I tried executing the following statements with no success:

0 6
0 104
Question
· Oct 28, 2024
IIS Routing Question

I have a question about the routing of IIS.

If I have a javascript application that has a single entry point app.html. Is it possible to configure the IIS server such that both the urls

addr:port/entry1

addr:port/entry2

to provide the same app.html and let the javascript code from application decide what component to load next, depending on the path of the URL ?

My IIS server is configured such that when I do a GET url1, ir tries to send entry1.html , respectively entry2.html when I do GET url2.

1 2
0 68
Question
· Jul 23, 2024
JWT and CORS

Hi

I'm trying to use JWT authentication on a REST application in IRIS. The login API are correctly "injected" into the application. Login works fine with Postman and other REST clients, and subsequent calls to my REST API using the bearer token work fine (correctly authenticated). So far, so good.

0 9
0 204

Hi all,

When passing on the content of a file in a REST API call, I need to put the original file name in an HTTP header. As it happens, some file names have non-8-bit characters in them ("å", "ö", and the like), and these arrive garbled on the other side. Does anybody know the correct way to encode them (assuming they should be encoded at all)?

$zconvert(filename, "O", "UTF8") does not appear to be it. I'm leaning towards $zconvert(filename, "O", "URL"), but leaning isn't good enough.

Thanks,
Otto

0 2
0 91

Hello community

I sent a http post message with a large message body (approx. 200 kB) to a standard EnsLib.REST.GenericService using a standard EnsLib.HTTP.InboundAdapter.

When inspecting the message in the message viewer I expected to see a HTTPMessage XML in the Contents preview, but I found a GenericMessage with no HTTPHeaders section. After a while, I found out that the display in the message's Visual Trace differs from what is shown, when going to the View Full Contents view in the Contents tab of the message viewer.

0 2
0 64
Question
· Aug 18, 2024
Microsoft Entra and IRIS

Dear All,

I am currently part of a team that is developing an application using Microsoft PowerApps as the front end and IRIS as the backend. Effectively that frontend screens, which are house and an Azure serve, call a series of REST interfaces exposed by IRIS from a physical Microsoft server. During the development stage we have not had any security in place but now we need to secure the application using a single sign on. PowerApps relies on Microsoft Entra for its security both LDAP and OAuth. Has anyone in the community connected IRIS to Microsoft Entra?

0 2
0 149

I have a question about using OnInit() within a Ens.BusinessOperation.

When you include OnInit(), does OnInit() only execute when you start a Business Operation? Or does it execute OnInit () every time you send a REST request to the operation. I am trying to pinpoint when the best time is to execute the POST command to get the Token

I am needing to get a Bearer Token from a REST POST call and return the Authorization key prior to making the rest of the REST calls to pull down data.

0 13
0 190

I'm working with isc.rest and am going through the tutorial right now. My project directory exists on my IRIS server. When I try to create a module.xml file in the root package, I get a #16006 error. I see that there is a "generate" command for zpm that should create a module.xml for me on my local filesystem. How can I create this module.xml in the same folder that holds my code living on the IRIS server?

1 1
0 84

I use a swagger file and ##class(%REST.API).CreateApplication to create the rest api.

There is an interesting post: https://community.intersystems.com/post/download-file-rest-api-operation, but it is code, not a swagger configuration. disp.cls returns always a header content : application/json that of course fails as I am not always returning a json

I can not figure out what to put in swagger. Some examples I tried:

0 2
0 125

I am attempting to make a FHIR call against the Epic Repository through Intersystems. I have setup a Service client per Create FHIR REST Client | InterSystems Developer Community | Business

but I have set it up using OAuth and HTTPS.

I have verified that the OAuth works by executing it manually via a Terminal to verify I get a response. Of course, when I do it is writing to the ISCLOG

0 4
0 132

Hi everybody,

I created my own REST service class by extending EnsLib.REST.Service.

In some particular conditions of the parameters of the request, the REST service should respond to the client with an HTTP status response code 400 "Bad request".

I read the article "RESTful Exception Handling " and I try to use the suggested:

do ..ReportHttpStatusCode(400)

But the server seems ignore it and get back to client the 500 http response code.

Any suggestions?

0 4
0 1.6K

Hello everyone, I need some help.

I have to send some events for a government WebService that I already imported the WSDL and XSD's and It worked fine and I'm able to build the message and connect into the service, but It has been rejected with the message that the XML is wrong and the only diference between the Caché SOAP message to all the examples that the government gave us is the header:

This is how the Government is expecting the message:

0 10
0 179

I built my rest api with ^%REST and update with CreateApplication.
Postman works fine and I suppose production server will work fine as UI and rest api will be on the same domain, but for now in dev, I need to have access from my local to the Iris rest api. I have a CORS error.

I do not know how to configure my swagger file to have either Parameter HandleCorsRequest=1 or <route Cors=true in the generated displ,cls.

0 3
0 214

I am trying to use postman to start the restapi classes from a json openapi2.0.0 file.

POST: https://myserver.com/api/mgmnt/v2/requestAPI. The body contains the openapi2.0.0. The application api/mgmnt has in security settings: password. JWT is not selected. I set postman authentication to basis authentication and gave username and password. I also set in headers IRISUsername and IRISPassword. I have 401 Unauthorized.

Is the only way to go through is to build an oauth token? or do I miss something?

1 2
0 143

Dear,

I'm trying to configure a new interface that reads HL7, transform them into FHIR messages and then send POST or PUT or DELETE depending on HL7 doc type.

1-I added an HL7 TCP service that reads ADTs messages

2a-Send ADTs to a process to transform them into SDA (using the following command: do ##class(HS.Gateway.HL7.HL7ToSDA3).GetSDA(request,.con))

2b-Extract the patient MRN and add it to the AdditionalInfo property (using the following request message class: HS.Message.XMLMessage)

1 5
0 160

Hello everyone!
So, I am supposed to receive a REST-request into my production, and I need to send it, exactly as I received it, to another server.
I am struggling to find any good info on this, and have a hard time coming up with a good approach.
What would be the easiest way to do this?
- I have so far thought about possibly doing it with an EnsLib.REST.GenericService and then sending it with an EnsLib.REST.GenericOperation.

1 4
0 235

Hi all,

As you know, it is very complicated to debug a Business Service Rest API because the object is created when the applications receive a request, so we cannot have the JobId that we can use to debug.

https://docs.intersystems.com/iris20211/csp/docbook/DocBook.UI.Page.cls?...

So, I'm trying to get the JobId when the class is being created, write a trace in OnInit() method and write the JobId in a log info

1 3
0 181
Question
· Feb 9, 2024
Content Type change in IIS?

Hello,

I have a problem with a FHIR Interop scenario that the HTTP Header Value content-type between IRIS and client changes in case of an error (HTTP 422). If I set the status in the response to 200 OK as the last step in the service class, the return transmission works.

Within my operation class, the error code is taken from the source system and entered in the HS.FHIRServer.Interop.Response message.

0 3
0 250

Hello everyone!
I am wondering how I can retrieve multipart form-data from a request that is coming into my REST-service.
I am supposed to retrieve a string and a file. The file is being retrieved without issues, but the "testprofile" string is not being retrieved at all.
It just logs a an empty entry.
The request that is sent to my REST-service has the Content-Type: multipart/form-data
Thanks beforehand for the help! :)

Down below is the code I use right now to retrieve the string and file from Form-data Rest HTTP-request to my service.

0 5
0 621

Hello everyone!
I am receiving a HTTP multipart/form-data request into my rest service.
How can I read the values for each Key in the form?
The key "Profile" is sent to my service as a String data type.
The code I have below does not seem to work, where I try to read the Key profile in the form.

I appreciate all the help I can get! :)

0 26
0 631