私はnodejs(joshbalfour/node-cognitive-services)用にMicrosoft Cognitive Services APIを使用しています。私はドキュメンテーションの例に従ってコードを守ってきました。しかし私は、その応答が常に「未定義」であることを発見しました。コグニティブサービスmakeRequestは常に未定義を返します
face.listPersonGroups({
parameters
})
.then((response) => {
console.log('Got response:', response); //always undefined?
})
.catch((err) => {
console.error('Encountered error making request:', err);
});
これは、makeRequestが実際にリクエストを行っているrepoからface.jsを呼び出しています。
return verifyParameters(operation, parameters)
.then(makeRequest({
operation,
parameters,
API_KEY
}));
私はapi.jsでコンソールに出力をログインした場合、私は、認知サービスAPI(200 OK)からの実際の応答を見ることができます。
const makeRequest = ({operation, parameters, body, API_KEY}) => {
let headers = {
'Ocp-Apim-Subscription-Key': API_KEY
};
let path = operation.uriTemplate;
operation.parameters.forEach((param) => {
if (parameters[param.name] && param.type == 1){
path = path.split(`{${param.name}}`).join(parameters[param.name]);
parameters[param.name] = undefined;
}
});
let uri = `${operation.scheme}://${operation.host}/${path}`;
const options = {
uri,
method: operation.method,
headers,
qs: parameters,
json: true,
body
};
//if you output the response from 'rp' here we get the actual result (200 OK)
return rp(options);
APIへの実際の呼び出しは正常ですが、値を返すことはできません。なぜ誰かが私のコントローラーの応答がいつも「未定義」であると説明できるのであれば、非常に役に立ちます。
私はAPIコードにバグがあると思います。 (make_Request({operation、parameters、API_KEY})); 'は、' .then(return makeRequest({operation、parameters、API_KEY})) –