I have a REST client APi but no detail on how the REST service is implemented . What technology do i use to make it useful for any implementation - rest

So i have a assignment to write some REST client calls to a REST web service which does not exist.
To work around it i created a mock web service using Jersey. But i am not sure what technology the actual REST service would use.
Please advise on what technology should i use to send down the REST calls to the server.
Also if possible also give me a sample of how to send down a XML GET request to the REST service.
Thanks much for the help.

Please advise on what technology should i use to send down the REST calls to the server.
REST is HTTP. You can use anything that sends HTTP requests:
Jersey Client
Any web browser
cURL
telnet
carrier pigeon
...
Also if possible also give me a sample of how to send down a XML GET request to the REST service.
It's just an HTTP GET request. How it's built/generated/sent depends on what library and programming language you're writing the client in. But the actual request itself would look something like this:
GET /foo/bar/baz HTTP/1.1
Host: www.example.com
Accept: text/xml

As far as I know Both Java and .Net environment has the tools to generate WebServices (SOAP and rest). What's your client development language ?

REST :Representational state transfer in simple terms used to send data between client and server . As
Client use some persistent URL for communication and it is stateless communication .
Java uses Jersey, the reference implementation of JAX-RS, implements support for the annotations defined in JSR 311, making it easy for developers to build RESTful web services by using the Java programming language.
So All u have to use for creating services is just some dependencies , bean configuration and some annotations (To Expose Service ) .
For calling REST Service , u can either call from browser . Browsers like (chrome ,mozilla ) provide some plugins to calling REST service or u can create a client to call REST Service .

Related

Is there RESTful webservice calls avaible in WSUS

I want to know details of an update from a remote WSUS server through RESTFul or any other Webservice call, Is that possible. I'm aware of Microsoft.UpdateServices.Administration and it's usage.
RESTful web services are not supported by WSUS Administration API.
SOAP has to be used to communicate with the server. There are many open source SOAP client appliations which can be used for this task.
Remember about the authentication mechanism which developing the solution.
I used Python3 requests, ntlm and zeep libraries to achieve this task.

Exe as Webservice Endpoint

I got a webservice endpoint and I stumple upon how to correctly implement it.
It seems to be an parameterized exe-file which returns an XML Reply.
There is no documentation.
I am used to soap, wcf and rest but this is completely unknown to me, has anyone a guide or a best case how to implement such a service?
I can consume it with a HTTP GET but there are some questions left to me:
I know the questions are quite broad... But I could not find anything about it in the interwebz.
Is there a secure way to publish exe files as webservice?
Are there any critical downsides implementing such an interface?
Make I myself a fool and this is just an alias?
Example Url:
http://very.exhausting.company/Version/SuperStrange.exe?parameter=String
Web servers
What you call a webservice endpoint is nothing else than a web server listening on some host (normally 0.0.0.0) and some port on a physical or virtual machine and responding with some HTTP response to HTTP requests sent to that host, port and URIs that the web server cares to process.
Any web server is itself an application or a static or dynamic component of an application as the following examples illustrate:
JBoss, Glassfish, Tomcat etc. are applications, known as application servers, into which containers/servlets/plugins implementing web servers and corresponding endpoints are deployed. These listen on some port exposing generic web servers routing requests to those containers and their servlets;
a fat jar started with java -jar on a JVM which deploys a vert.x verticle featuring a vert.x HttpServer listening on some port is nothing else than a web server;
an interpreter such as node.js parsing and executing JavaScript code based on the express module will most likely deploy a web server on some port;
finally, a statically or dynamically linked application written in languages such as C++ or Go can expose a web server listing on some port.
All of the above cases feature different deployment mechanisms, but what they deploy is essentially the same: a piece of software that listens for HTTP requests on some port, executes some logic based on request and returns HTTP responses to the caller.
Your windows exe file is most likely a statically linked application that provides a web server.
Protocols
So we know you have a web server as it reacts to an HTTP GET. How does it relate to REST, SOAP etc? Effectively, REST, SOAP etc are higher level protocols. TCP is the low level, HTTP is based on top of that and your server supports that. REST, SOAP and everything else that you mention are higher level protocols that are based, among others, on HTTP. So all you know is that your application (web server) supports HTTP, but you do not know which higher level data exchange protocol it implements. It definitely implements some, at least a custom one that its author came up with to exchange data between a client and this application.
You can try to reverse engineer it, but it is not clear how would you find out about all possible endpoints, arguments, payload structures, accepted headers etc. Essentially, you have a web server publishing some sort of an API, but there is no generic way of telling what that API is.
Security
The world around you does not have to know how the API is published. You can put any of the above 4 web server implementations behind exactly the same firewall or a reverse proxy with SSL termination exposing just one host and port over SSL. So there is no difference in security, with respect to the world, whether you deploy it as exe or as a war into JBoss. This is not to say, that your exe file is secure: depending on how it is implemented it may allow all sorts of attacks, but again, this is equally true for any mechanism.

gSOAP: REST Client withouth gSOAP server

I have a RESTful service and I want to use gSOAP for my REST client. Is it possible to use gSOAP without having gSOAP on the server side, simply communicating with the RESTful service that is offered by the service?
Yes, this is possible. You can use gSOAP for the client side only, for the server side only, or for both.
In my client (in C) I´m using the function "json_call(..., "Some-Service-URL", ...)" to give a JSON-structured http-content to a Java-service.
See here for more details.
Regards Daniel

IMS as RESTful WebService Consumer

We need to expose IMS as RESTful webservice consumer. I had referred a document "Creating a RESTful Web Service for IMS-Transaction" by Ivy Ho, which talks about exposing IMS as RESTful webservice provider. In that document they selected an OUTBOUND adapter option while creating an J2C bean(Page Num 4), which makes the data to be passed from application to adapter. Is it possible if I opted INBOUND adapter which makes the data to be passed in to the application from the adapter, will it help me to expose IMS as RESTful consumer.
If any proven methods are available, to expose our application as RESTful webservice consumer, kindly share the same ?
Is it possible in the SOAP GATEWAY server to handle REST calls of the client application. So my core application can consume the REST response of client application after the data mapping in the SOAP GATEWAY server.
Kindly share your views and thoughts. Thanks in advance.
The recommended route for your IMS application to consume an external REST service would be through the API Requester function for z/OS Connect EE. The following link provides a step by step guide for doing exactly what you want: https://www.ibm.com/support/knowledgecenter/en/SS4SVW_3.0.0/com.ibm.zosconnect.doc/scenarios/ims_apiReq_intro.html
The reason this would be recommended is it funnels all outbound calls through a single gateway which can be monitored, modified, and updated without affecting your applications.
SOAP Gateway will not be able to handle REST calls. I suggest looking into IMS Mobile Feature pack which is a restful endpoint for IMS.
IMS Mobile Feature Pack Description:
This feature provides a RESTful endpoint for mobile services to access back-end IMS resources through IMS Connect. A data transformation module is included that converts request and response messages between JSON and the native representation of the input and output messages. Tooling support for modeling, creating, testing, and managing services is provided through IMS Enterprise Suite Explorer for Development.
reference:
https://developer.ibm.com/wasdev/downloads/#asset/features-com.ibm.ims.imsmobile-1.0
https://developer.ibm.com/wasdev/downloads/#asset/features-com.ibm.ims.imsmobile-2.0

Access Wsdl web service client side GWT

I'm working in an GWT 2.4 project. I want to access to a SOAP service. I used wsdl2java to generate classes of the service (servicestub, servicelocator, ...). But this code is server side. How can I do to access the service on the client-side?
There are some problems in Calling Cross Domain Web Services in AJAX. You can read answer on this question: Accessing web Service from jQuery - cross domain. But you can call server method using RPC. And then server get data from SOAP and return to client.
Its really tricky to do that (I'm even not sure if its possible) and I would prefer to wrap the SOAP call into a server side service and call that from you client.