【问题标题】:Creating Multiple Transactions based on Request根据请求创建多个事务
【发布时间】:2015-03-19 21:37:02
【问题描述】:

我正在模拟一个肥皂网络服务,无论请求正文如何,我都只能返回默认的第一个响应。

我的尝试基于文档Multiple Transaction Examples,我对自己做错了什么感到困惑。

举个例子:

+ Request

      <?xml version="1.0" encoding="UTF-8"?>
      <SOAP-ENV:Envelope xmlns:SOAP-ENV="" xmlns:xsd="" xmlns:xsi="">
         <SOAP-ENV:Body>
            <m:transaction-identity-verification xmlns:m="">
            </m:transaction-identity-verification>
         </SOAP-ENV:Body>
      </SOAP-ENV:Envelope>

+ Response

      <?xml version="1.0" encoding="UTF-8"?>
      <env:Envelope xmlns:env="">
         <env:Header />
         <env:Body>
            <java:transaction-response xmlns:java="j">
               <transaction-status>
                  <transaction-id>third_8020750179321</transaction-id>
                  <transaction-request-id>george_8020860578800</transaction-request-id>
                  <accounts-transaction-id>13</accounts-transaction-id>
                  <reference-id>13</reference-id>
                  <transaction-result>questions</transaction-result>
               </transaction-status>
            </java:transaction-response>
         </env:Body>
      </env:Envelope>

+ Request

      <?xml version="1.0" encoding="UTF-8"?>
      <SOAP-ENV:Envelope xmlns:SOAP-ENV="" xmlns:xsd="" xmlns:xsi="">
         <SOAP-ENV:Body>
            <m:transaction-continue xmlns:m="">
            </m:transaction-continue>
         </SOAP-ENV:Body>
      </SOAP-ENV:Envelope>

+ Response

      <?xml version="1.0" encoding="UTF-8"?>
      <env:Envelope xmlns:env="">
         <env:Header/>
         <env:Body>
            <java:transaction-response xmlns:java="">
               <transaction-status>
                  <transaction-id>cont_1_11020785803682</transaction-id>
                  <transaction-request-id>11020943348626</transaction-request-id>
                  <accounts-transaction-id>0</accounts-transaction-id>
                  <transaction-result>passed</transaction-result>
               </transaction-status>
            </java:transaction-response>
         </env:Body>
      </env:Envelope>

在上面的示例中,即使我发布了两个不同的请求,我也只会收到第一个响应。根据链接的文档,这应该是可能的。

【问题讨论】:

    标签: apiblueprint apiary.io apiary


    【解决方案1】:

    Apiary 模拟服务器无法根据您的请求正文确定从多个事务示例返回哪个响应。

    API Blueprint 确实允许您提供多个响应,Apiary 模拟服务器将仅使用响应代码、标头或内容类型来区分这些示例。

    例如,给定两个不同内容类型的响应:

    + Response 200 (plain/text)
    
        Text Response
    
    + Response 200 (application/json)
    
        { "text": "JSON Response" }
    

    现在,当我们向模拟服务器发出请求以获取上述响应时。我们可以提供一个Accept 标头来获取 JSON 响应:

    $ curl -H 'Accept: application/json' URL
    { "text": "JSON Response" }
    

    或者要求文本回复:

    $ curl -H 'Accept: plain/text' URL
    Text Response
    

    您可以在http://support.apiary.io/knowledgebase/articles/117119-handling-multiple-actions-on-a-single-resource找到更多相关信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-18
      • 1970-01-01
      • 1970-01-01
      • 2014-12-26
      • 1970-01-01
      • 2021-03-27
      • 2012-04-12
      相关资源
      最近更新 更多