In this article I'll describe how to set up web services and/or REST services using EWD 3.

Since EWD 3 is designed to be modular, you can construct the environment that exactly meets your needs, but for much of the time you'll probably find that the pre-built EWD 3 ewd-xpress super-module does most of what you need because it hooks together all the core EWD 3 and other building-blocks you'll need:

40
1 1 1,201

Hi there,

    I'm trying to develop a  program calling Cache REST service twice with Cors. The first is fetching some information of a patient with GET request, the second is using obtained information to call another REST service(implemented in the same class though) with POST to  perform other tasks.

00
0 6 1,157

Over the past year or so, my team (Application Services at InterSystems - tasked with building and maintaining many of our internal applications, and providing tools and best practices for other departmental applications) has embarked on a journey toward building Angular/REST-based user interfaces to existing applications originally built using CSP and/or Zen. This has presented an interesting challenge that may be familiar to many of you - building out new REST APIs to existing data models and business logic.

120
6 34 1,157
Question
Kenneth Poindexter · Sep 19, 2016
REST json payload

Hi-

This almost seems like a silly question, but I am new to REST services.

I have a rest service that has a method for adding records to my database. 

<Route Url="/userdetails" Method="POST" Call="SaveUserDetails"/>
 

My REST client sends data using json in the body of the request.  I have verified using debugging tools that the data is actually being sent.

On the server side in my SaveUserDetails method where do I find the json?

What is the proper way to serialize that json into an object?

 

00
0 2 1,140

Hi

I tried to access one server to another server in Cache Rest Service, I tried 

Parameter HandleCorsRequest = 1;

and

<Route Url="/data/:first/:second" Method="GET" Call="GetData" Cors="true"/>

But not working,

Can anyone tell me the solution??

Thanks in advance!!

00
1 5 1,139

Something that shot up the popularity stakes last week was this article on a very interesting initiative: RealWorld:

https://medium.com/@ericsimons/introducing-realworld-6016654d36b5

I decided it would be a good idea to use this as a way of creating an exemplar implementation of a RESTful back-end using QEWD against their published API (https://github.com/gothinkster/realworld/tree/master/api)

The results are here:

40
0 14 1,130

Cross-origin Resource Sharing (CORS) is one of the basic security features built into browsers. CORS controls accessing resources from a HTML page in domains other than the original domain. It is particularly important for AJAX calls. Since RESTful services can be used as data provider to any AJAX call, you have to be able to control cross-origin access. By default services are not allowed to do CORS. You are going to learn how to enable it for Ensemble RESTful services.

30
0 0 1,110

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?

00
0 3 1,103

or "Things are going to break"

We left our application over the weekend, secure in the knowledge that it was returning data from our primary persistent class, User.Widget.  However, Widgets Direct are the premier supplier of both Widgets AND Widget Accessories, so we should really start working on adding these Accessories to our application. 

20
0 3 1,096

RESTful API Call From Cache to Particle.io Electron

Tom Fitzgibbon | Multidata | 212-967-6700 x537 | tom@mul.com

Summary: Simple Blink Tutorial for Particle.io Electron Device from Cache

Electron device is a tiny ARM processor ($40-$60) that connects to Particle’s world wide leased 2G/3G network (about $3/mo) and runs off an included LiPo battery. Using Cache’s %Net.HttpRequest you can send/receive data, control hardware and read sensors.

Step by Step (about 1 hour)

1) Get the Electron from store.particle.io.

20
0 0 1,076

As many of you, our partners, are more widely using modern UI frameworks to create client front-end, you may have encountered a question, "So how do I secure my data when I just finished developing all new fancy browser based client experience?"

The answer is easy. Use a standard, proven OAuth2 and OpenID!

"OK, but how can I do it? I have never done it before."

No problem, just have a look here, if your client is Angular (not AngularJS) based, there is a demo project available for you to review and get inspired!

60
0 1 1,074
Article
Eduard Lebedyuk · Dec 7, 2017 3m read
Asynchronous REST

In this article I'd like to discuss asynchronous REST and approaches to implementing it.

Why do we need asynchronous REST? Simply put - answering the request takes too much time. While most requests usually can be satisfied immediately, some can't. The reasons are varied:

  • You need to perform time-consuming calculations
  • Performing action actually takes time (for example container creation)
  • etc.

The solution to these problems is asynchronous REST. Asynchronous REST works by separating request and real response. Here's an example, let's consider the following simple async REST broker:

30
0 9 1,062

Hi,

I'm getting mad trying to get data from an external REST service that uses Basic Authentication from Ensemble. The BO worked fine when I was using a test server without authentification, but as soon as we need to go to production I cannot have it working.

So far, I've created the username/password at the credentials page (Ensemble-Configure-Credentials). I've setup the BO to use this credentials. But nothing happens.

I've tried with the Rest Client (addon for Mozilla), and using the same address, port and user/pwd works just fine.

00
0 8 1,058

At the end of our last lesson, we ended with our page displaying a nice (but garish) Angular Material Toolbar, and our Widget data displaying in a list of Material cards.  Our page feels a bit static, and we already know that the large number of Widgets that we will be dealing with will not be especially usable on a static list.  What can we do to help?

30
0 0 1,034

I am trying to write an application that will take some information on the database make a call to the Google API distance matrix and get the information to use with rest of the application without using the ensemble part of the development is this possible and how can I do my communication with the  API from a cache class thanks in  advance

00
0 7 1,010

Hi All,

I am new to webservice and UPS. I have tried the sample URL's that UPS have given for testing in PHP codes and it works just perfect for me.

But when i try to hit the same URL's in Ensemble. it gives some errors from UPS.

If anyone of you guys here has any knowledge about UPS integration or the webservice please help me. it will be much appreciated and helpful.

The ensemble code that i am trying with is,

00
0 5 998

Hello,

In all web services, i need to my get login and token. So with Postman, i tried to call a HTTP request where I put the login/token in the header :

 

I tried to get data from Http request header. The REST APi use %CSP.REST. I tried something like that : 

But it didn't work..

Someone can give me some example or other method ?

Regards,

00
0 2 989

Hello,

 

I have a DB server (ser-app-db) where cache is installed as server.

I have a Web server (ser-app-w) where cache is installed as web server and configured as CSP gateway.

I followed the configuration guide (https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY...) and ser-app-w perfectly display the CSP and CLS pages.

 

But that's not working for my REST service, for exemple with the REST sample:

00
0 9 973

Hello fellow developers,

I am currently in need of a way to serve files dynamically (sending specific replacements for when the requested file doesn't exist, possibly depending on other conditions such as passed parameters).

00
0 6 950

or "Bonus Breakage"

In our last lesson, we added a relationship between 2 persistent classes.  We are clearly going to need to start creating REST Services to expose CRUD operations for each of these classes, but before we do that, we should really finish defining our linkages.  We added code to our Widget toJSON to spool off related Accessory data, so we should really do the reciprocal and allow Accessories to return all Widgets that are compatible.

30
1 2 920

Hi all,

I've a RESP API service in a Business Service to server different methods

I've created the route with the name of the method, each one has been created in lowercase 

XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
    <Route Url="/user" Method="POST" Call="User"/>
    <Route Url="/emailactivation" Method="POST" Call="EmailActivation" />
    <Route Url="/login" Method="POST" Call="Login"/>
</Routes>
}

But only there is a response if the call is used in lowercase

00
0 2 916