为了描述RESTful,我们可以说每个资源都有自己的URI.使用HTTP GET,POST,PUT和DELETE,我们可以对这些资源进行操作.所有资源都具有代表性.谁想要使用我们的资源可以通过浏览器或REST客户端来实现.
这是RESTful架构的主要思想.这种架构允许互联网上的服务.那么为什么这个架构需要WADL呢?WADL提供的标准HTTP不是什么?为什么WADL需要存在?
我已经使用Jersey工作了几天的REST Web服务,并设法让所有CRUD操作工作,有几种交换格式:XML,JSON,Google Protobuf.
但是,我面临一些与自动生成的WADL和XSD相关的问题.
为了定义以这三种格式交换的对象,我遵循了"契约优先"的方法:
但是,由于我希望我的用户也能够生成他们的类,我想分享这些模式文件(.xsd和.proto)并将它们与自动生成的WADL很好地集成.
为此,感谢这个维基页面:
/schema/schema.xsd
/schema/schema.proto
我添加了一个应用程序语法文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<grammars xmlns="http://wadl.dev.java.net/2009/02"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xi="http://www.w3.org/1999/XML/xinclude">
<include href="../schema/schema.xsd" />
</grammars>
Run Code Online (Sandbox Code Playgroud)我添加了一个自定义的WADL生成器:
public class RichWadlGeneratorConfig extends WadlGeneratorConfig {
@Override
public List<WadlGeneratorDescription> configure() {
return generator(WadlGeneratorApplicationDoc.class)
.prop("applicationDocsStream", "application-doc.xml")
.generator(WadlGeneratorGrammarsSupport.class)
.prop("grammarsStream", "application-grammars.xml")
.descriptions();
}
}
Run Code Online (Sandbox Code Playgroud)这样,当我点击时,下面出现在WADL中/rest/application.wadl
:
<grammars>
<include href="../schema/schema.xsd"/>
<include href="application.wadl/xsd0.xsd">
<doc title="Generated" xml:lang="en"/>
</include>
</grammars>
Run Code Online (Sandbox Code Playgroud)
/rest/application.wadl/xsd0.xsd
是从我的课程自动生成的,但与我最初的课程有很大的不同schema.xsd
.除此之外,调用像wadl2java
这个WADL 这样的工具失败了,大概是因为
/schema/schema.xsd …
这三个都可以用作REST API描述符.有什么区别?我知道这是一个激烈的问题,但我只想进行比较,而不是火焰战:P
我正在实现一个Web服务,我已经实现了REST和SOAP版本,以查看哪个适合我的需求.我决定选择REST因为它的简单性,我可能会开发一个iPhone应用程序来使用它.我的问题很简单,是否可以为我的REST服务创建WSDL或WADL,是否有必要?
谢谢
我有一个Web应用程序,为客户提供30多个REST服务(使用Jersey).是否可以为我的应用程序自动创建WADL文档?
我需要这个,以便我可以在SoapUI中配置它来测试各种场景并保存以供以后使用.
我一直在研究WADL,并想知道为什么它没有被更广泛采用?
随着REST使用率的增长,我很惊讶更多的开发工作不会使用它.
它的设计是否存在根本缺陷,它是否与通常围绕RESTful Web服务的文化相匹配,还是完全不同于其他东西?
我在C#中创建了一个RESTful Web服务,并将其部署到IIS.当我访问服务HeadOffice.svc时,我可以选择查看WSDL(HeadOffice.svc?wsdl).我想做的是可以选择查看WADL(例如HeadOffice.svc?wadl).这可能吗?
我已经阅读了一般意见认为这不是最佳做法的地方.但是,我需要WADL作为学校作业,所以任何帮助都会非常感激.
我正在寻找一个代码生成器,而不是生成C#代码来访问WADL文件描述的RESTful Web服务,其方式与wadl2java的工作方式类似.
做som搜索我遇到了关于Google Code 的rest-api-code-gen项目,但是虽然最新的源代码实际上支持C#,但REST Describe&Compile演示站点却没有.(C#按钮在那里,但它已被禁用.)
我意识到我可以下载源代码并使用最新版本设置我自己的服务器,但我不愿意,因为我需要的是命令行工具,而不是依赖于Google Web Toolkit的Web应用程序.我想我可以根据相同的源代码编写自己的命令行工具,但如果已经完成,或者其他工具可以完成这项工作,我宁愿避免使用它.
所以,我想知道,有那样的工具吗?
我很难找到命令行工具将WADL转换为java.无论我尝试谷歌多少,请关注博客或java.net文档,没有真正的下载链接.(链接被破坏或过时).
什么特定的供应商,社区组正在提供此工具?是否存在免费下载链接?
生成的代码应该能够从XML响应中重建POJO并在Tomcat 7中生存.谢谢
答:(这只适用于2011年6月之后):
是否有任何方法可以自动生成一个带有HttpUrlConnection的jax-rs客户端或者第三方解决方案,如jersey,apache,restlet等.拥有一个框架/应用程序不是一个优势吗?