Мы используем Google Cloud Translation API в нашем экспресс-приложении.Я пытаюсь делать переводы, используя клиентскую библиотеку вместо того, чтобы каждый раз делать запрос API.1. Что я хочу знать, так это как передать параметры, такие как формат (текст или html) в API при использовании клиентской библиотеки?Я могу добиться этого, отправляя http-запросы, используя requestjs
, например:
var request = require('request');
var url = 'https://translation.googleapis.com/language/translate/v2';
var options1 = {
q: 'amore mio',
target: 'hi',
format: 'text',
source: 'it',
key: 'my API key'
}
request.post({url:url, qs:options1}, (err, res, body)=> {
if(err) {
console.log('ERR: ', err);
}
console.log('RES: ', res.statusCode);
console.log('Body: ', body);
})
Но пример использования клиентской библиотеки показывает только это:
const {Translate} = require('@google-cloud/translate');
// Your Google Cloud Platform project ID
const projectId = 'YOUR_PROJECT_ID';
// Instantiates a client
const translate = new Translate({
projectId: projectId,
});
// The text to translate
const text = 'Hello, world!';
// The target language
const target = 'ru';
// Translates some text into Russian
translate
.translate(text, target)
.then(results => {
const translation = results[0];
console.log(`Text: ${text}`);
console.log(`Translation: ${translation}`);
})
.catch(err => {
console.error('ERROR:', err);
});
Есть ли способ, которым я могупередать параметры типа «форматировать» с помощью клиентской библиотеки?
Как передать массив строк в атрибут q (querystring) объекта параметров в первом методе?Если я передаю массив, например:
q: ['amore mio', 'grazie']
, я получаю сообщение об ошибке:
RES: 400
Body: {
"error": {
"code": 400,
"message": "Required Text",
"errors": [
{
"message": "Required Text",
"domain": "global",
"reason": "required"
}
]
}
}