2016-06-03 7 views
0

Ich habe Probleme, die Wordnik API über Swagger (NodeJS) zu verwenden.Rufen Sie Wordnik API von NodeJS mit Swagger

Ich versuche, diese Dokumentation zu folgen: swagger-api

Die Wordnik API hier gegründet werden kann: hhttp: //developer.wordnik.com/docs.html#/Wort/getRelatedWords_get_4

Die JSON Beschreibung des Wordnik API: hhttp: //developer.wordnik.com/v4/word.json

ich versuche, die GET /word.json/{word}/relatedWords Methode mit den folgenden Parametern aufrufen:

{word:"cars", useCanonical:true, relationshipTypes:"synonim", limitPerRelationshipType:10}

Die Wordnik API erfordert Authentifizierung gemäß der swagger-api Dokumentation ich den folgenden Code geschrieben haben:

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'), 
       } 
      }); 

Mein Hauptproblem ist, dass ich nicht weiß, wie man richtig um den Code zu schreiben, mit diesem Parameter, die Methode aufzurufen . Der oben geschriebene Code gibt den folgenden Fehler zurück:

failed with the following: {"message": "unauthorized", "type": "error"}

Haben Sie eine Idee, wie Sie den Code schreiben, um diesen Aufruf zu tätigen?

Antwort

2

Zwei Dinge: Erstens, die URL Swagger für Wordnik sollte
http://api.wordnik.com/v4/word.json

Zwei sein, müssen Sie 'Synonym', nicht 'synonim' verwenden.

Ich habe versucht, Ihren Code mit diesen beiden Änderungen und es funktioniert gut für mich.

Auch ich bin mir nicht sicher, warum Sie Swagger.js hier verwenden? Es ist definitiv kühler, aber Sie können die API mit der Bitte nennen, zB:

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)); 
       } 
     }); 
+0

Oh, es ist wahr, ich nicht, dass zwei Fehler beobachten haben, Ihre Lösung gearbeitet :) Und es ist ein guter Rat Anfrage zu verwenden, werde ich nimm es in Betracht. Danke vielmals! – overflow13