我想创建一个WADL文件,使用Apache CXF wadl2java
Maven插件可以从中创建Java接口。
在WADL中,我想使用XSD-File中定义的数据类型。
这些是我的REST服务:
@Path("/v1/order")
public interface OrderResource {
@PUT
@Consumes(MediaType.APPLICATION_XML)
public Response createOrder(Order order);
@GET
@Produces(MediaType.APPLICATION_XML)
public List<Order> getOrders(@QueryParam("orderId") List<Long> orderIds);
}
我的WADL:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<application xmlns="http://wadl.dev.java.net/2009/02" >
<grammars>
<include href="RestService_schema1.xsd" />
</grammars>
<resources base="http://localhost:9080/rest/">
<resource path="v1/order/" id="OrderResource">
<resource>
<method name="PUT" id="createOrder">
<request>
<representation mediaType="application/xml" />
</request>
<response status="200">
</response>
</method>
</resource>
</resource>
<resource>
<method name="GET" id="getOrders">
<request>
<param name="orderId" style="query" type="xs:long" />
</request>
<response status="200">
<representation mediaType="application/xml" />
</response>
</method>
</resource>
</resources>
</application>
我的RestService_schema1.xsd:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Order" type="Order" />
<xs:complexType name="Order">
<xs:attribute name="OrderId" type="orderid">
<xs:annotation>
<xs:documentation>...
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:sequence>
.
.
.
.
</xs:sequence>
</xs:complexType>
<xs:simpleType name="orderid">
<xs:annotation>
<xs:documentation> ....
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:long" />
</xs:simpleType>
</xs:schema>
我想做什么:
我想在我的WADL中指定createOrder Service的输入类型Order。我知道这可以使用element-attribute完成,但是如何链接呢?也许element="Order"
中的<representation>
- 标签?
getOrders()的查询参数 - 服务应该是List<Long>
(在WADL中是一个带有orderid的列表)和响应类型List<Order>
。如何在WADL中指定它?