Quantcast
Channel: User Chase Seibert - Stack Overflow
Viewing all articles
Browse latest Browse all 43

Java REST client without schema

$
0
0

Goal

Java client for Yahoo's HotJobs Resumé Search REST API.

Background

I'm used to writing web-service clients for SOAP APIs, where wsimport generates proxy stubs and you're off and running. But this is a REST API, which is new to me.

Details

Progress

I looked at question Rest clients for Java?, but the automated solutions there assume you are providing both the server and the client, with JAXB invoked on POJOs to generate a schema and a REST API.

Using Jersey (a JAX-RS implementation), I have been able to make a manual HTTP request:

import com.sun.jersey.api.client.*;...ClientConfig clientConfig = new DefaultClientConfig();Client client = Client.create(clientConfig);WebResource webResource = client.resource("https://hj.yahooapis.com/v1/HJAuthTokens");webResource.accept("application/xml");// body is a hard-coded string, with replacements for the variable bitsString response = webResource.post(String.class, body);// parse response into a org.w3c.dom.Document// interface with Document via XPATH, or write my own POJO mappings

The response can look like:

<?xml version="1.0" encoding="utf-8"?>   <Response>   <ResponseCode>0</ResponseCode>   <ResponseMessage>Login successful</ResponseMessage><Token>NTlEMTdFNjk3Qjg4NUJBNDA3MkJFOTI3NzJEMTdDNDU7bG9jYWxob3N0LmVnbGJwLmNvcnAueWFob28uY29tO0pVNWpzRGRhN3VhSS4yQVRqRi4wWE5jTWl0RHVVYzQyX3luYWd1TjIxaGx6U0lhTXN3LS07NjY2MzM1OzIzNDY3NTsxMjA5MDE2OTE5OzZCM1RBMVNudHdLbl9VdFFKMFEydWctLQ==</Token>   </Response>  

Or, it can look like:

<?xml version="1.0" encoding="utf-8"?>   <yahoo:error xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" xml:lang="en-US">   <yahoo:description>description</yahoo:description>   <yahoo:detail>   <ErrorCode>errorCode</ErrorCode>   </yahoo:detail>   </yahoo:error>  

Questions

  • Is there a way to auto-generate POJOs which can be marshalled/unmarshalled without a formal schema?
  • Should I attempt to generate those POJOs by hand, with JAXB annotations?
  • Is there some tool I should be leveraging so I don't have to do all this manually?

Viewing all articles
Browse latest Browse all 43

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>