我在/Northwind/Product
的WCF中创建了一个简单的Northwind的产品REST Web服务。我还在我的服务上启用了WCF Web HTTP服务帮助页面,该页面位于/Northwind/Product/help
。我有一个“GET”操作,其帮助页面位于:/Northwind/Product/help/operations/Get
,这是您的标准WCF帮助页面,显示Xml主体,Json主体,Xml架构和其他Xml架构。非常直接,对吧?好的,现在,有趣的东西......
我对Xml架构部分感兴趣,它是:
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="Product">
<xs:sequence>
<xs:element minOccurs="0" name="CategoryID" nillable="true" type="xs:int" />
<xs:element minOccurs="0" name="Discontinued" type="xs:boolean" />
<xs:element minOccurs="0" name="ProductID" type="xs:int" />
<xs:element minOccurs="0" name="ProductName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="QuantityPerUnit" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="ReorderLevel" nillable="true" type="xs:short" />
<xs:element minOccurs="0" name="SupplierID" nillable="true" type="xs:int" />
<xs:element minOccurs="0" name="UnitPrice" nillable="true" type="xs:decimal" />
<xs:element minOccurs="0" name="UnitsInStock" nillable="true" type="xs:short" />
<xs:element minOccurs="0" name="UnitsOnOrder" nillable="true" type="xs:short" />
</xs:sequence>
</xs:complexType>
<xs:element name="Product" nillable="true" type="Product" />
</xs:schema>
我对它感兴趣,因为数据类型。我想知道元素的数据类型。现在,我明白这不是REST的基础。但是,我不想在这里使用SOAP对象。我想保持我的服务简单和松散类型,但仍然需要时知道他们的数据类型。
我的问题是,我如何才公开帮助文件的这个特定部分?如果我不能那样做,那么我有什么其他选择来实现我在这里要做的事情呢?
答案 0 :(得分:1)
我认为既不能轻松打字也不能同时知道这些字段背后的类型。
您可以将所有内容作为字符串发送,然后在无法进行转换时抛出异常。
xs:element标记中似乎没有可用于帮助信息的标记,http://www.w3schools.com/schema/el_element.asp
答案 1 :(得分:1)
也许您可以尝试使用OData,因为我认为它介于REST和SOAP之间。