使用API​​与Node&角

时间:2016-02-18 01:15:10

标签: javascript angularjs api

尝试使用Node& amp构建语言翻译消息传递应用程序角。使用名为Yandex的API(谷歌翻译不是免费的)。 www.yandex.com

我不确定我是否有正确的方法,这是我第一次在我的项目中实施API。

所以我有一个简单的表格

<div ng-controller="messageController">
    <h4>Send Message</h4>
    <form>
        <textarea name="message" ng-model='message.msg'></textarea>
        <input type="submit" value="Send" ng-click='sendMessage()' class="btn btn-info">
    </form>
</div>

哪个转到messageController

myapp.controller('messageController', function($scope, messageFactory, $location, $rootScope) {
        $scope.sendMessage = function(){
            console.log("Inside sendMessage()" + $scope.message.msg)
            messageFactory.translateMessage($scope.message.msg, function (data){
                console.log(data);
            })
        }
})

这是工厂使用我的api密钥进行API调用。

myapp.factory('messageFactory', function($http, $location) {
        var factory = {};
        factory.translateMessage = function(info, callback) {
            console.log("Inside Message Factory-Traslate", info)

            $http.get('https://translate.yandex.net/api/v1.5/tr.json/translate?key=<ENTER_KEY_HERE>&text='<info>'&lang=<ga>&[format=<plain>]').success(function (output){
                callback(output);
            })
        }
        return factory;
    });
PS:我明显在这里取代了钥匙。

这是https://tech.yandex.com/translate/doc/dg/reference/translate-docpage/#JSON之后的链接。

虽然有一种感觉,但这不是我应该如何进行API调用。

如何发出API请求并取回响应?

先谢谢。

1 个答案:

答案 0 :(得分:0)

您必须提供有关您所遇到的错误的更多信息,但在您的代码中,您在进行API调用时,网址应如下所示:

var url = 'https://translate.yandex.net/api/v1.5/tr.json/translate?key=' + key + '&text=' + info + '&lang=ga&format=plain'

所以你的代码看起来像这样 -

var key = 'yourActualKey'
var url = 'https://translate.yandex.net/api/v1.5/tr.json/translate?key=' + key + '&text=' + info + '&lang=ga&format=plain'

$http.get(url).success(function (output) {
    callback(output)
})

您不必包含&lt;&gt;或[]作为你的参数的一部分。这些仅用于表示占位符&lt;&gt;和可选的params []。

另外,我建议使用.then而不是.success来处理您的承诺。

Official docs on $http