How to use the generated WADL Intellij code for RESTful WS client?
So I've installed IntelliJ and sucessfully generated my Endpoint class that contains all the boilerplate code to access the JSON web services described in my WADL, just after adding a missing wadl-core-SNAPSHOT-1.0-SNAPSHOT.jar (the generated code wasn't compiling and latest versions of wadl-core from 1.1 to 1.5 don't have certain expected classes) and after switching the "intelliJ web service engine" from the default glassfish to "restful web services".
Also, the latest intelliJ does not have the option to generate from a WADL, but this is another issue.
From intelliJ wiki page, (see http://wiki.jetbrains.net/intellij/RESTful_WebService#Creating_Web_Service:_RESTful_Web_Services_Client) there's a very brief explanation about how to generate the classes, but it suddenly stops the explanation saying that
That’s all for now. Of course, this tutorial only covers the essential topics you will need to build a Web Service application with IntelliJ IDEA. There’s a lot more of things to explore and features that can help you enhance your application: integration with Hibernate, Spring, support for EJB, JSP, AJAX, integration with many popular application servers, and a whole lot more. Check out http://www.jetbrains.com/idea for additional details
and the link, obviously, does not provide any example of how to use the generated classes :-)
so I have for example a RESTful method like this
https://myserver/myapp/target/search?name=somecriteria
and IntelliJ generated a class called target and another called search, so I can do something like
Search x = new Target.Search();
but I can't find anywhere how to pass the "name" attribute to it neither how to get results. All I can see are some methods from these objects, that I simply don't know how to deal with
public static void main(String[] args) throws JAXBException, MalformedURLException, IOException{
Target t = new Target();
Search x = new Target.Search();
javax.activation.DataSource appJson = x.getAsApplicationJson();
String type = "?";
String domain = "?";
String org = "?";
String name = "?";
String hostname = "?";
String description = "?";
javax.activation.DataSource appJson2 = x.getAsApplicationJson(type, domain, org, name, hostname, description);//?
javax.activation.DataSource input = null; //?
t.postAs(input); //?
}
I confess I was expecting a little bit more, like some code I could just use :-). Or maybe I am not getting the point of this code generation stuff.
So my question is: how do I work with the generated java code for a RESTful client generated by IntelliJ from a WADL? Is there any tutorial, any example somewhere? Is that the expected code? Should I, now, create all the missing input parameters? How do I use this DataSource thing in this context?
This is so worse than generating a client from a WSDL, where all the methods and their signatures are clear and explicitly defined :-(
One simple example of how to make a simple search (using any intelliJ generated code of course) and retrieve some results is enought for me, then I can just find out myself.
TIA
Leo
Please sign in to leave a comment.