0

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

我的尝试基于文档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>

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

4

1 回答 1

0

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

API Blueprint 确实允许您提供多个响应,Apiary 模拟服务器将仅使用 response-code、headers 或 content-type 来区分这些示例。

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

+ 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找到更多相关信息

于 2015-03-19T13:37:02.923 回答