了解WADL规范 - 文档必需的帖子参数

时间:2015-07-28 09:39:26

标签: web-services rest wadl

关于WADL-specification,我有两个问题。

他们的示例http://foo.it/widgets/123?custId=cust1234&verbose=true包含两个可选的查询参数custIdverbose

  1. 他们的示例中给定的节点结构是否正确?
  2. 您能否提供或更正我的带有辅助参数的请求后的示例?
  3. header的意思是什么以及我需要放置xml的位置 - 我的理解是正确的吗?
  4. 引用自2.8.1查询参数

      

    资源或请求的子参数元素(参见第2.12节)   样式值'query'表示所描述的URI查询参数   在HTML 4.01 [4]的第17.13节中。查询的运行时值   HTTP方法时,参数作为URI查询参数发送   调用。

         

    以下示例显示了具有生成URI的资源   它支持带有两个可选查询的单个HTTP方法   参数

    这是他们的例子

    <resources base="http://example.com/widgets">
        <resource path="{widgetId}">
            <param name="custId" style="query"/>
            <method name="GET">
                <request>
                    <param name="verbose" style="query" type="xsd:boolean"/>
                </request>
                <response>
                ...
                </response>
            </method>
        </resource>
    </resources>
    

    在我看来,resource param method request param或层次结构的序列不正确

      resource 
      ++ param      <-- why is this here
      ++ method
      ++++ request
      ++++++ param    <-- and the other one here
      ++++ /request
    

    问题1:节点

    内的参数位置

    我原本希望参数都在<request>里面,就像这里

    一样
    <resource path="{widgetId}"> 
       // removed custId
        <method name="GET">
           <request>
               <param name="custId" style="query"/>
               <param name="verbose" style="query" type="xsd:boolean"/>
            </request>
            ....
        </method>
    </resource>
    

    所以这个层次结构

      resource 
      ++ method
      ++++ request
      ++++++ param      <-- all params are inside request
      ++++++ param    
      ++++ /request
    

    我的理解是否正确如何嵌套参数或无关紧要或具有不同的含义?

    问题2:您如何记录所需的帖子参数

    此代码段是否正确?

    <method name="POST">
      <request>
        <param name="custId" style="query" required="true"/>
        <param name="verbose" style="query" required="true" type="xsd:boolean"/>
      </request>
      ....
    </method>
    

    更新Q3。使用和理解header

    我如何理解: header:指定在资源类型的所有子方法元素的请求部分中使用的HTTP头

    这是否与以下示例类似,并且字段userId将成为每个请求中http-header的一部分?

      <request>
        <param name="userId" style="header" required="true" />
        ....
     </request>
    

    由于

    第一部分回答

    至少基于wikipedia entry to WADL所需部分似乎是正确的

    <method name="GET" id="search"> 
     <request> 
      <param name="appid" type="xsd:string" style="query" required="true"/> 
      <param name="query" type="xsd:string" style="query" required="true"/> 
     ...
    

1 个答案:

答案 0 :(得分:0)

当您使用WSDL或SOAP消息传递时,您可以定义这些被称为部分的元素(输入,输出操作)。这些部件使用称为Schema的定义的一部分。

此架构元素是WSDL的一部分,也可能是单独的XSD文档。而这个架构元素就是告诉格式和规则的。

Q1。格式似乎不正确,请参阅此示例https://docs.oracle.com/cd/E41633_01/pt853pbh1/eng/pt/tibr/concept_UnderstandingWADLDocuments-7b7fd7.html

Q2。发布请求的示例

<method id="POSTWeatherStation.v1" name="POST">
    <request>
      <resource path="weather/{state}/{city}?forecast={day}">
        <param name="state" required="true" style="template" type="xsd:string"/>
        <param name="city" required="true" style="template" type="xsd:string"/>
        <param name="day" required="true" style="template" type="xsd:string"/>
      </resource>

Q3。是的,它应该是具有指定为标题的参数的方法的一部分。