0

我正在尝试使用他们的 API 获取贸易转移采购订单。

仅供参考,当我发出 API 请求时,

  • 我正在使用OAuth1.
  • 我正在使用端点 https://api-sandbox.tradeshift.com/tradeshift/rest/external/documents?limit=5

在标题中,当我设置Acceptapplication/JSON时,我收到类似的响应

{
  "itemsPerPage": 5,
  "itemCount": 2,
  "indexing": false,
  "numPages": 1,
  "pageId": 0,
  "Document": []
}

但如果我在 中不添加任何内容Header,我会收到XML回复。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ts:DocumentList xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ts="http://tradeshift.com/api/public/1.0" xmlns:ns6="http://tradeshift.com/api/1.0" xmlns:ns7="http://tradeshift.com/api/2.0" xmlns:ns8="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:ns9="urn:oasis:names:specification:ubl:schema:xsd:Quotation-2" xmlns:ns10="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Order-2" xmlns:ns12="urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2" xmlns:ns13="urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2" xmlns:ns14="urn:oasis:names:specification:ubl:schema:xsd:Reminder-2" xmlns:ns15="urn:oasis:names:specification:ubl:schema:xsd:RemittanceAdvice-2" xmlns:ns16="urn:oasis:names:specification:ubl:schema:xsd:ReceiptAdvice-2" xmlns:ns17="urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2" xmlns:ns18="https://tradeshift.com/documents/ubl/xsd/Requisition-2" xmlns:ns19="urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2" xmlns:ns20="urn:oasis:names:specification:ubl:schema:xsd:RequestForQuotation-2" xmlns:ns21="urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2" xmlns:ns22="urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2" xmlns:ns23="urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2" indexing="false" numPages="1" pageId="0" itemsPerPage="5" itemCount="2"/>

我不太确定该文档是否已经以UBL格式存在。

你能否确保,如果文件已经作为UBL存在。

如果文档在那里,那么我该如何解析文档?如果文件不存在,我怎样才能得到文件?

4

1 回答 1

1

该文件不存在,两个响应都相同,只是格式不同。为了获得您在 Tradeshift 账户中收到的文件,您应该按照以下步骤操作:

  1. 使用以下 API 获取包含您帐户中所有可用文档的列表: GET https://api-sandbox.tradeshift.com/tradeshift/rest/external/documents?type=order Content-Type=application/json Accept=application/json Authorisation=oauth1

作为响应,您将拥有一个 JSON,其中包含您帐户中的所有订单以及检索订单的 UBL 文件所需的详细信息。

  1. 从 JSON 导致点 1 使用您想要获得的订单的 DocumentId 进行以下调用 GET https://api-sandbox.tradeshift.com/tradeshift/rest/external/documents/{DocumentUUID} Content-Type=application/json Accept=application/xml Authorisation=oauth1

  2. 获得文件以将其标记为已处理后,您还可以使用以下 API 调用标记文档:

    PUT https://api.tradeshift.com/tradeshift/rest/external/documents/{DocumentId}/tags/{your-tag}

在第一次调用时,您可以添加更多参数,例如withouttag以过滤掉您已经标记的文档,如下面的调用:

`GET https://api-sandbox.tradeshift.com/tradeshift/rest/external/documents?type=order&withouttag={your-tag}`
于 2020-09-30T20:04:41.153 回答