angular - Installer swagger-codegen via npm på Windows OS


Jeg har generert min klient TypeScript/Angular2-språk ved å bruke https://github.com/swagger-api/swagger-codegen via en Java-kommando.

Men jeg vil gjerne generere klienten min i TypeScript/Angular2 ved å bruke en npm-kommando, ikke en Java-kommando.

Eksempel :

  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

Jeg bruker Windows 8.1 OS. Jeg fant ikke swagger-codegen-kommandoen for å installere med npm.

Svar #1

Jeg har funnet en løsning for å generere en klient-API for Angular 2 TypeScript uten java-kommando, men ved å bruke node-kommando.

Eksempel på node-skript for å generere TypeScript Angular-klient fra swagger.yaml. Merk at vi bruker http. Forespørsel kan ikke verifisere det første sertifikatet hvis du bruker https (på tidspunktet for skrivingen av dette)

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

Jeg satte nettopp variabelen language til 'typescript-angular2'. Etter det node app.js

For listen over tilgjengelige klient-språk, besøk bare http://generator.swagger.io/api/gen/clients

Og for flere detaljer: https://github.com/swagger-api/swagger-codegen/wiki/FAQ seksjon Generator Service

Svar #2

Ser du etter noe slik?

npm install @openapitools/openapi-generator-cli -g

Relaterte artikler