0

One problem that continuously comes up at my workplace is creating clients for Java rest services that we create. We have 4 different programming languages to support and it is costly to create clients for each programming language. Often this means our web services aren't available in a cross platform manner since we rarely have time to build all of the clients.

SOAP provides this type of discovery and machine created client mechanism based off of tools that consume WSDL but our architectural direction is to write REST based services in Java instead of SOAP services.

We would also prefer not to write WSDL documents by hand that expose these REST web services. In a .NET environment, WCF and ASMX web services automatically create the WSDL for consumption in other applications, but this is not a direction my team is allowed to pursue.

Can this be done in some fashion for a Java based REST service?
How can this be done without having to invest a lot of manual labor?

We're currently using spring controllers but might be able to argue for a different Java framework if it provides better velocity.

Peter Smith
  • 849
  • 2
  • 11
  • 28
  • 1
    Look into integrating this library: https://helloreverb.com/developers/swagger - It takes care of documenting the services - Provides an environment where you can test the services using a browser. – SJha Sep 20 '14 at 20:00

2 Answers2

0

Jersey (JAX-RS implementation) has support for WADL. You can use Jersey to automatically generate a WADL and there is also some support for generating Java clients from the WADL.

That's for Java, and I don't know if it's more than basic support, but I doubt you can pull it off for 4 different programming languages.

You might want to read these first though (tl;dr: REST is more than a CRUD style Web API and is different than SOAP):

Community
  • 1
  • 1
Bogdan
  • 23,890
  • 3
  • 69
  • 61
0

You may want to check third party tools like swagger (http://swagger.io/) and mashery. I know swagger has support for client generation.

Kparekh78
  • 21
  • 1