How to call RESTful webservice ?

Hi,

I need information on how to call a RESTful webservice? I am using webMethods 7.1.2.

Also do I need WSDL? how can I create a descriptor ( if needed ) from the RESTful ws URL?

Any information on RESTful webservices will be helpful.

Thanks,
Pragati

  1. Create the XML (or whatever content-type the provider needs).
  2. Make the call using the appropriate/desired HTTP operation (put, post, get.)

RESTful interfaces usually don’t use descriptor files.

Thanks for your response Rob!!

I will try this !

Pragati…

By the way, REST is now officially supported in version 8.2. The 8.2 documentation may be of interest for future purposes.

Percio

Good point Percio. From the release notes:

“webMethods Integration Server 8.2 includes a number of facilities for building and exposing services and data using the REST architectural style. Integration Server now supports all four HTTP methods (GET, PUT, POST, DELETE), as well as REST-style URLs, where resource IDs are embedded in the main URL path. Additionally, content type negotiation is much more flexible, allowing full control over the content type of responses.”

This is focused on IS as the host of interfaces supporting REST principles. A step in the right direction.

As for calling interfaces that adhere to REST principles, I don’t think much has changed.

[Side notes]
There are more than 4 HTTP methods.
REST != HTTP – implementers should keep in mind that a RESTful interface isn’t necessarily always based on HTTP

Hi All,

I got some more information on requirement.

RESTful ws will be wrapped in SOAP and it is to be called through reverse invoke.
I believe it will be a soap call from wm.

I have read the concept of reverse invoke in IS Admin guide but I am bit confused with the coding of it.

Please correct if i am wrong in understanding the implementation -

  • There will be a URL present for the ws which will be called through wm service pub.client.soapClient.
  • this service pub.client.soapClient will be in a wrapper service.
  • How this wrapper service will be invoked by user when he is calling the actual ws using the URL?

Any help is appreciated as i haven’t worked with reverse invoke before.

Thanks!

The reverse invoke (now called gateway) server is used for outside calls coming in to your installation. It is not used when your IS makes calls to outside servers.

Huh? If you could do this, why would you want to?

I thought one of the benefits of REST was to leverage the built-in verbs of HTTP (POST, GET, PUT, etc.) to implement your service’s actions on a resource or object? The parameterized URL plus an completely optional XML payload provides the interface. You don’t need a SOAP interface on top of all that.

If you need strong type checking, to define your own verbs or action, always need to send or receive an XML message that conforms to a pre-defined schema, need support for multiple protocols (HTTP, JMS or even SMTP) or need maximum interoperability from a variety of clients, then use SOAP.

If the verbs that make up HTTP are sufficient for your application, you’ve spent time understanding how to define an effective RESTful service and you don’t need to exchange more complex XML documents, then REST may be just the ticket.

There are numerous SOAP vs REST comparisons around, some even rise above the flame war level to be pretty useful.

However, REST over SOAP would seem to offer the worst of both worlds.

My $0.02,

Mark