2017-03-15 8 views
1

Ich habe meine Client-Typoskript/angular2 Sprache mit https://github.com/swagger-api/swagger-codegen über einen Java-Befehl generiert.Installieren Sie Swagger-Codegen über Npm unter Windows OS

Aber ich möchte mein Client typescript/angular2 mit einem Befehl npm nicht mit einem Java-Befehl generieren.

Beispiel:

npm install swagger-codegen -g 
    swagger-codegen generate -i http://petstore.swagger.io/v2/swagger.json -l 
    typescript-angular2 -o c:\temp\angular2_api_client 

Ich bin Fenster 8.1 OS verwenden. Ich habe den Befehl swagger-codegen nicht gefunden, um mit npm zu installieren.

+1

@suraj Prahlerei-js ia dynamischen JS-API-Client, nicht einen Code-Generator. –

+0

@ Mahdi-kallel können Sie uns mehr darüber erzählen, warum Sie Code mit NPM-Modul anstelle von JAR generieren möchten? –

+0

'npm' besteht hauptsächlich aus js-Bibliotheken und alle seine Skripte beschäftigen sich mit Javascript. Was bedeutet es also, NPM mit einer Java-Bibliothek zu generieren? –

Antwort

0

Ich finde eine Lösung zum Generieren einer Client-API für angular 2 Typescript ohne Java-Befehl, aber mit Node-Befehl.

Beispiel für ein Knotenscript zum Generieren eines typescript angular client von swagger.yaml. Beachten Sie, dass wir http verwenden. Anforderung kann nicht das erste Zertifikat überprüfen, ob https (zum Zeitpunkt des Schreibens dieser)

Dies ist app.js

var fs = require('fs'); 
var path = require('path'); 
var jsYaml = require('js-yaml'); 
var request = require('request'); 
var unzip = require('unzip2'); 

var codeGenEndpoint = 'http://generator.swagger.io/api/gen/clients'; 
var language = 'typescript-angular2'; 

fs.readFile(path.resolve('swagger.yaml'), 'utf8', function (error, yaml) { 
    if (error) { 
     throw error; 
    } 

    var swaggerObj = jsYaml.load(yaml); 

    var postBody = { 
     spec: swaggerObj, 
     options: { 
      modelPropertyNaming: 'camelCase', 
      apiPackage: 'api.clients.settings', 
      modelPackage: 'api.clients.settings' 
     } 
    }; 

    request.post({ 
     url: codeGenEndpoint + '/' + language, 
     body: JSON.stringify(postBody), 
     headers: { 
      'Content-Type': 'application/json' 
     } 
    }, function(error, response, body){ 
     if (error) { 
      throw error; 
     } 

     if (response.statusCode !== 200) { 
      throw new Error('Response code was not 200. ' + body) 
     } 

     var responseObj = JSON.parse(body); 

     request({ 
      url: responseObj.link, 
      encoding: null 
     }).pipe(unzip.Extract({ path: 'src/client/js/codegen/settingsApi'})); 
    }); 
}); 

Gerade i variable Sprache mit Typoskript-angular2 inisialise. Nach dieser node app.js

Liste der verfügbaren Client-Sprachen besuchen nur http://generator.swagger.io/api/gen/clients

Für weitere Informationen: https://github.com/swagger-api/swagger-codegen/wiki/FAQ Abschnitt Generator Dienst