2017-03-15 96 views
1

我使用https://github.com/swagger-api/swagger-codegen通過Java命令生成了我的客戶端typescript/angular2語言。在Windows操作系統上通過npm安裝swagger-codegen

但我想使用npm命令而不是java命令來生成我的客戶端typescript/angular2。

示例:使用視窗

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 

我'8.1操作系統。 我沒有找到swagger-codegen命令來安裝npm。

+1

@suraj招搖-JS IA動態JS API客戶端,而不是一個代碼生成器。 –

+0

@ mahdi-kallel你能告訴我們更多關於你爲什麼要用NPM模塊而不是JAR生成代碼的問題嗎? –

+0

'npm'主要由js庫及其所有腳本處理javascript。那麼使用NPM來生成Java庫意味着什麼? –

回答

0

我找到了一個解決方案來生成一個沒有java命令但使用節點命令的angular 2 typecript的客戶端API。

用於從swagger.yaml生成打字稿角度客戶端的示例節點腳本。請注意,我們使用http。如果使用HTTPS(在寫這篇的時間)請求無法驗證第一個證書

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

只是我inisialise可變語言,打字稿,angular2。 是node app.js

可用的客戶端語言的列表後,只需訪問http://generator.swagger.io/api/gen/clients

而對於更多的細節:https://github.com/swagger-api/swagger-codegen/wiki/FAQ 部分發電機服務

相關問題