入门指南

不知道如何执行我们的网络服务?没问题!这里有最基础的方法介绍。

Provider ID

首先,您需要申请一个 Provider ID。通过此 ID,您就可以使用 TecDoc 网络服务API。点击以下链接,获取您的 ID。如您已有 ID,请继续下一步。

获取一个 provider ID

SOAP/XML 或者 RESTful/JSON

您可以通过 SOAP/XML 或 RESTful/JSON,使用 TecDoc 服务。以下的表格提供了接口地址:

协议 类型 平台 地址
SOAPTEST2 Document Literal Bare Endpoint https://webservice.tecalliance.services/pegasus-3-0/services/TecdocToCatDLB.soapEndpoint
SOAP Document Literal Bare WSDL https://webservice.tecalliance.services/pegasus-3-0/wsdl/TecdocToCatDLB
JSON Document Literal Bare Endpoint https://webservice.tecalliance.services/pegasus-3-0/services/TecdocToCatDLB.jsonEndpoint
JSON Document Literal Bare JavaScript client https://webservice.tecalliance.services/pegasus-3-0/services/TecdocToCatDLB.jsonEndpoint?js
SOAP Document Literal Wrapped Endpoint https://webservice.tecalliance.services/pegasus-3-0/services/TecdocToCatDLW.soapEndpoint
SOAP Document Literal Wrapped WSDL https://webservice.tecalliance.services/pegasus-3-0/wsdl/TecdocToCatDLW
JSON Document Literal Wrapped Endpoint https://webservice.tecalliance.services/pegasus-3-0/services/TecdocToCatDLW.jsonEndpoint
JSON Document Literal Wrapped JavaScript client https://webservice.tecalliance.services/pegasus-3-0/services/TecdocToCatDLW.jsonEndpoint?js
Documents https://webservice.tecalliance.services/pegasus-3-0/documents/<PROVIDER_ID>/<DOC_ID>/<THUMBNAIL_FLAG>

发起第一个请求

假设你对 JavaScript 和 JSON 没有或者只有一点的了解,我们将使用 getAmBrands() 发出一个请求并取得结果,来演示如何使用我们的服务。

创建一个基础文件

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>some title</title>
    <script type=text/javascript>
    </script>
</head>
<body>
</body>
</html>

增加常量和引用对应的脚本

常量为你的 provider Id。你需要使用服务提供的客户端脚本来与服务器沟通。

<!-- Import client script and define 'constant' values: -->
<script src="https://webservice.tecalliance.services/pegasus-3-0/services/TecdocToCatDLB.jsonEndpoint?js"></script>
<script>
    var TECDOC_MANDATOR = <YOUR PROVIDER ID>;
</script>

在开发阶段,监听error事件可以帮助你定位错误信息。

<!--  Printout any error: -->
<script>
window.onerror = function(message, file, lineNumber) {
    alert(file + ' (line: ' + lineNumber + '): ' + message);
    return true;
};
</script>

常用的方法和回调

接口的调用都是以异步的方式进行的,所以需要一个回调函数。displayText() 方法用来创建JSON字符串。

// Call a function in a generic way:
function call(functionName, params) {
    params = toJSON(params);
    displayText("Request", params);
    tecdocToCatPort[functionName] (params, callback);
}

// Callback function to do something with the response:
function callback(response) {
    displayText("Response", toJSON(response));
}

用来发送请求的方法

在这个方法里,创建了一个符合标准的 JavaScript 请求对象,并发送请求。

// Prepare a specific call:
function callAmBrands(country, lang) {
var functionName = "getAmBrands";
var params = {
        "articleCountry" : country,
        "lang" : lang,
        "provider" : TECDOC_MANDATOR
    };

call(functionName, params);
}

显示通讯过程

我们需要看到通讯内容以确保如期运作。

// Create JSON String and put a blank after every ',':
function toJSON(obj) {
    return JSON.stringify(obj).replace(/,/g,", ");
}

function displayText(label, obj) {
    // Create element to display:
    var element = document.createElement('div');

    // Create element as 'label' and append it:
    var header = document.createElement('div');
    header.innerHTML = label + ":";
    header.style.fontWeight = 'bold';
    element.appendChild(header);

    // Create element with data to display and append it:
    var display = document.createElement('span');
    display.appendChild(document.createTextNode(obj));
    element.appendChild(display);

    // Append element to body:
    document.body.appendChild(element);
}

发送请求并显示返回的结果

这个示例的方法在页面加载的时候会自动执行。

<body>
</body>
<script>
    callAmBrands("DE", "en");
</script>

全部的代码...

把上诉的代码全部结合起来。

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>some title</title>
    <script src="https://webservice.tecalliance.services/pegasus-3-0/services/TecdocToCatDLB.jsonEndpoint?js"></script>
    <script type=text/javascript>
      var TECDOC_MANDATOR = <YOUR PROVIDER ID>;

      // Display any error that occurs:
      window.onerror = function(message, file, lineNumber) {
        alert(file + ' (line: ' + lineNumber + '): ' + message);
        return true;
      };

      // Call a function in a generic way:
      function call (functionName, params) {
        params = toJSON(params);
        displayText("Request", params);
        tecdocToCatPort[functionName] (params, callback);
      }

      // Callback function to do something with the response:
      function callback(response) {
        displayText("Response", toJSON(response));
      }

      // Prepare a specific call:
      function callAmBrands(country, lang) {
        var functionName = "getAmBrands";
        var params = {
              "articleCountry" : country,
              "lang" : lang,
              "provider" : TECDOC_MANDATOR
            };

        call(functionName, params);
      }

      function toJSON(obj) {
        // Create JSON String and put a blank after every ',':
        return JSON.stringify(obj).replace(/,/g,", ");
      }

      function displayText(label, obj) {
        // Create element to display:
        var element = document.createElement('div');

        // Create element as 'label' and append it:
        var header = document.createElement('div');
        header.innerHTML = label + ":";
        header.style.fontWeight = 'bold';
        element.appendChild(header);

        // Create element with data to display and append it:
        var display = document.createElement('span');
        display.appendChild(document.createTextNode(obj));
        element.appendChild(display);

        // Append element to body:
        document.body.appendChild(element);
      }

  </script>
  </head>
  <body>
  </body>
  <script>
    callAmBrands("DE", "en");
  </script>
</html>