"X wrapper for Node.js" 通常是什么意思?
What does "X wrapper for Node.js" generally mean?
例如 google-speech-api
package 被描述为 "Google Speech API wrapper for node."
在这种情况下,包装器到底是什么?
在这种情况下,"wrapper" 是一个为服务或库提供方便接口的库,否则使用起来会更加不便。包装器 "wraps" 将原生 API 转换为更方便的形式。
例如,Google 语音 API 通过 HTTP 请求使用。 page 给出了这个例子:
curl -X POST \
--data-binary @alsalam-alikum.flac \
--user-agent 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7' \
--header 'Content-Type: audio/x-flac; rate=16000;' \
'https://www.google.com/speech-api/v1/recognize?client=chromium&lang=ar-QA&maxresults=10'
(请注意,该页面基于 API 的 v1,但 API 现在是 v2。但是,这与我在这里所说的无关紧要。)
您完全可以通过使用标准 Node.js 函数(即没有包装器)发出等效的 HTTP 请求来完成操作,但是:
您将不得不处理大量本不该处理的细节。例如,查询始终以字符串 https://www.google.com/speech-api/v1/recognize
开头。如果您手动执行,则必须始终指定它。您可能必须在每个查询中设置 headers。每个查询可能需要传递一个 API 键。使用包装器,不依赖于您的具体情况的事情由包装器处理,而取决于您但不变的事情(如 API 键)一旦设置可以设置一次且只能设置一次。
您的代码不会清楚地反映您正在尝试做什么。不了解 Google 演讲的人 API 会看到您正在执行 HTTP 查询,但不会轻易弄清楚您是什么 实际上 正在做。使用包装器,您可以编写更类似于您正在尝试做的事情(来自上面链接的 google-speech-api
页面):
var speech = require('google-speech-api');
var opts = {
file: 'speech.mp3',
key: '<Google API Key>'
};
speech(opts, function (err, results) {
console.log(results);
// [{result: [{alternative: [{transcript: '...'}]}]}]
});
当然,阅读本文的人会想要阅读包装器的文档,但至少他们会很快到达那里,而不是浏览一堆对大局无关紧要的细节。
例如 google-speech-api
package 被描述为 "Google Speech API wrapper for node."
在这种情况下,包装器到底是什么?
在这种情况下,"wrapper" 是一个为服务或库提供方便接口的库,否则使用起来会更加不便。包装器 "wraps" 将原生 API 转换为更方便的形式。
例如,Google 语音 API 通过 HTTP 请求使用。 page 给出了这个例子:
curl -X POST \
--data-binary @alsalam-alikum.flac \
--user-agent 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7' \
--header 'Content-Type: audio/x-flac; rate=16000;' \
'https://www.google.com/speech-api/v1/recognize?client=chromium&lang=ar-QA&maxresults=10'
(请注意,该页面基于 API 的 v1,但 API 现在是 v2。但是,这与我在这里所说的无关紧要。)
您完全可以通过使用标准 Node.js 函数(即没有包装器)发出等效的 HTTP 请求来完成操作,但是:
您将不得不处理大量本不该处理的细节。例如,查询始终以字符串
https://www.google.com/speech-api/v1/recognize
开头。如果您手动执行,则必须始终指定它。您可能必须在每个查询中设置 headers。每个查询可能需要传递一个 API 键。使用包装器,不依赖于您的具体情况的事情由包装器处理,而取决于您但不变的事情(如 API 键)一旦设置可以设置一次且只能设置一次。您的代码不会清楚地反映您正在尝试做什么。不了解 Google 演讲的人 API 会看到您正在执行 HTTP 查询,但不会轻易弄清楚您是什么 实际上 正在做。使用包装器,您可以编写更类似于您正在尝试做的事情(来自上面链接的
google-speech-api
页面):var speech = require('google-speech-api'); var opts = { file: 'speech.mp3', key: '<Google API Key>' }; speech(opts, function (err, results) { console.log(results); // [{result: [{alternative: [{transcript: '...'}]}]}] });
当然,阅读本文的人会想要阅读包装器的文档,但至少他们会很快到达那里,而不是浏览一堆对大局无关紧要的细节。