快速入门:使用 Node.js 通过文本翻译 API 来确定句子长度

本快速入门介绍如何使用 Node.js 和文本翻译 REST API 来确定句子长度(以字符数为单位)。

此快速入门需要包含文本翻译资源的 试用订阅获取订阅密钥。

提示

如果你想一次看到所有代码,这个示例的源代码可以在 GitHub 上找到。

先决条件

本快速入门需要:

创建一个项目并导入必需的模块

使用最喜欢的 IDE 或编辑器创建新的项目。 然后,将此代码片段复制到项目的名为 sentence-length.js 的文件中。

const request = require('request');
const uuidv4 = require('uuid/v4');

备注

如果尚未使用这些模块,则需在运行程序之前安装它们。 若要安装这些包,请运行 npm install request uuidv4

若要构造 HTTP 请求以及为 'X-ClientTraceId' 标头创建唯一标识符,必须使用这些模块。

设置订阅密钥

此代码会尝试从环境变量 TRANSLATOR_TEXT_KEY 读取文本翻译订阅密钥。 如果不熟悉环境变量,则可将 subscriptionKey 设置为字符串并注释掉条件语句。

将以下代码复制到项目中:

/* Checks to see if the subscription key is available
as an environment variable. If you are setting your subscription key as a
string, then comment these lines out.

If you want to set your subscription key as a string, replace the value for
the Ocp-Apim-Subscription-Key header as a string. */
const subscriptionKey = process.env.TRANSLATOR_TEXT_KEY;
if (!subscriptionKey) {
  throw new Error('Environment variable for your subscription key is not set.')
};

配置请求

使用通过请求模块提供的 request() 方法,可以以 options 对象的形式传递 HTTP 方法、URL、请求参数、标头和 JSON 正文。 在此代码片段中,我们将配置请求:

备注

有关终结点、路由和请求参数的详细信息,请参阅文本翻译 API 3.0:断句

let options = {
    method: 'POST',
    baseUrl: 'https://api.translator.azure.cn/',
    url: 'breaksentence',
    qs: {
      'api-version': '3.0',
    },
    headers: {
      'Ocp-Apim-Subscription-Key': subscriptionKey,
      'Ocp-Apim-Subscription-Region': 'your region',
      'Content-type': 'application/json',
      'X-ClientTraceId': uuidv4().toString()
    },
    body: [{
          'text': 'How are you? I am fine. What did you do today?'
    }],
    json: true,
};

若要对请求进行身份验证,最容易的方法是将订阅密钥作为 Ocp-Apim-Subscription-Key 标头传入,这是我们在此示例中使用的方法。 替代方法是交换订阅密钥来获取访问令牌,将访问令牌作为 Authorization 标头传入,以便对请求进行验证。

如果使用的是认知服务多服务订阅,则还必须在请求标头中包括 Ocp-Apim-Subscription-Region

有关详细信息,请参阅身份验证

发出请求并输出响应

接下来,请使用 request() 方法来创建请求。 它采用我们在上一部分创建的 options 对象作为第一个参数,然后输出美化的 JSON 响应。

request(options, function(err, res, body){
    console.log(JSON.stringify(body, null, 4));
});

备注

在此示例中,我们将在 options 对象中定义 HTTP 请求。 不过,请求模块也支持便捷方法,例如 .post.get。 有关详细信息,请参阅便捷方法

将其放在一起

就是这样,你已构建了一个简单的程序。该程序可以调用文本翻译 API 并返回 JSON 响应。 现在,可以运行该程序了:

node sentence-length.js

如果希望将你的代码与我们的进行比较,请查看 GitHub 上提供的完整示例。

示例响应

[
    {
        "sentLen": [
            13,
            11,
            22
        ]
    }
]

清理资源

如果已将订阅密钥硬编码到程序中,请确保在完成本快速入门后删除该订阅密钥。

后续步骤

查看 API 参考,了解使用文本翻译 API 可以执行的所有操作。

另请参阅

除了语言检测,还请了解如何使用文本翻译 API 执行以下操作: