WADL vs WSDL

Profile picture for user devraj

Difference between WSDL and WADL

WADL is the REST equivalent of SOAP's Web Services Description Language (WSDL), which can also be used to describe REST web services.

Point of DistinctionWSDLWADL
Acronym ForWeb Services Description LanguageWeb Application Description Language
DefinitionWSDL is an XML language for describing web services. Used to describe SOAP-based web services. WADL is an XML file-format . It is an XML vocabulary for expressing the behavior of HTTP resources. It is an XML to describe RESTful web services.
How client load fileA client can load a WSDL file and get to know what methods web service can call, what are the arguments the methods expect and which data type it returns.A client can load a WADL file and can access the complete functionality of the web service.    
Easier to Read, Write & UnderstandNot easy compare to WADL. WSDL is difficult to write and understand.Easier than WSDL. WADL is lightweight.
XML to describesXML to describe SOAP based Web ServicesXML to describe RESTful Web services. WADL is a REST equivalent of SOAP's web service description language.
Relation with RESTWSDL 2.0 can be used to describe REST Web services and thus competes with WADL. But it has a wider scope.WADL is REST equivalent of SOAP’s web service description language. 
Binding to SMTP serverIt has more binding to SMTP serverNo binding to SMTP Server
FlexibleWSDL more flexible than WADL.WADL covers all user expectation except Authentication, which is as simple as REST.
DesignComplex by DesignSimple By Design
AuthenticationAuthentication is involved for web servicesNo Authentication involved for web services
StandardOnly XML ParameterNot a standard
URI template mechanismThe user needs to define xml input message to use the URI template mechanismIt requires a simple URI template mechanism.
ScopeMore scope compared to WADLLimited scope compared to WSDL
W3C RecommendationW3C recommends WSDL interfaceW3C does not recommend WADL interface
HTTP protocolsWSDL 1.1 only supports GET and POST methods whereas WSDL 2.0 supports HTTP protocol also.WADL strictly support REST Service, only HTTP protocol.
Major Elements<type>, <message>, <porttype>, <binding><grammers>, <resources>, <methods>, <representation>
What it definesWSDL defines all major elements which may be defined 0 or more times except <types>. All definitions need not be in the same XML, one XML can import others.
Hence comes the concept of Abstract and Concrete portions, where concrete imports abstract.
WADL defines both resources and representation, and methods to manipulate resources.