簡體   English   中英

使用Swagger從NodeJS調用Wordnik API

[英]Call Wordnik API from NodeJS using Swagger

我在嘗試通過Swagger(NodeJS)使用Wordnik API時遇到問題。

我正在嘗試遵循以下文檔: swagger-api

可以在這里建立Wordnik API:hhttp://developer.wordnik.com/docs.html#!/ word / getRelatedWords_get_4

Wordnik API的JSON描述:hhttp://developer.wordnik.com/v4/word.json

我正在嘗試使用以下參數調用GET /word.json/{word}/relatedWords方法:

{word:“汽車”,useCanonical:true,relationshipTypes:“ synonim”,limitPerRelationshipType:10}

根據swagger-api文檔,Wordnik API需要身份驗證,我編寫了以下代碼:

 var Swagger = require('swagger-client');

            var client = new Swagger({
                url: 'http://developer.wordnik.com/v4/word.json',

            success: function() {
                client.word.getRelatedWords({word:"cars",useCanonical:true,relationshipTypes:"synonim",limitPerRelationshipType:10}, function(success){
                            console.log('succeeded and returned this object: ' + success.obj);
                        },
                        function(error) {
                            console.log('failed with the following: ' + error.statusText);
                        });
                },
                authorizations: {

                    api_key: new Swagger.ApiKeyAuthorization('api_key', 'MY_WORDNIK_API_KEY', 'query'),
                }
            });

我的主要問題是我不知道如何正確編寫代碼以使用該參數調用該方法。 上面編寫的代碼返回此錯誤:

失敗,並顯示以下內容:{“ message”:“ unauthorized”,“ type”:“ error”}

關於如何編寫代碼進行調用的任何想法?

兩件事:一,Wordnik的Swagger網址應為
http://api.wordnik.com/v4/word.json

第二,您需要使用“同義詞”,而不是“ synonim”。

我嘗試了您的代碼並進行了這些更改,對我來說效果很好。

另外,我不確定您為什么在這里使用Swagger.js? 絕對涼爽,但是您可以通過請求調用API,例如:

request("http://api.wordnik.com:80/v4/word.json/"+'car'+"/relatedWords?useCanonical=false&relationshipTypes=synonym&limitPerRelationshipType=10&api_key=YOURKEYHERE", function (error, response, body) {
            if (error || response.statusCode !== 200 || (body == "")) {
                console.log(word + " had error: " + error)
                return callback(error || {statusCode: response.statusCode});
              }
              else {
                // console.log(word);
                callback(null, JSON.parse(body));  
              }
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM