2017-12-02 3 views
0

Swagger 편집기 (https://editor.swagger.io/) 및 Swagger 허브 (https://swaggerhub.com/)가 있습니다. 나는 내가 알기 전까지 소스 코드가 다르다는 점에서 둘 다 똑같은 일을하고 있다고 생각했다. 내 경우에는 nodejs 서버를 둘 다 생성하고 소스 코드를 살펴 보았습니다.Swagger는 허브 및 편집기에서 다양한 소스 코드를 제공합니다.

자신감 편집기는 다음과 같은 자신감 허브 반면

exports.getJobs = function(args, res, next) { 
    /** 
    * Returns all jobs 
    * 
    * page String page (optional) 
    * returns List 
    **/ 
    var examples = {}; 
    examples['application/json'] = [ { 
     // my json 
} ]; 
    if (Object.keys(examples).length > 0) { 
    res.setHeader('Content-Type', 'application/json'); 
    res.end(JSON.stringify(examples[Object.keys(examples)[0]] || {}, null, 2)); 
    } else { 
    res.end(); 
    } 
} 

는 다음과 같은

/** 
* Returns all jobs 
* 
* page String page (optional) 
* returns List 
**/ 
exports.getJobs = function(page) { 
    return new Promise(function(resolve, reject) { 
    var examples = {}; 
    examples['application/json'] = [ { 
      // my json 
} ]; 
    if (Object.keys(examples).length > 0) { 
     resolve(examples[Object.keys(examples)[0]]); 
    } else { 
     resolve(); 
    } 
    }); 
} 

왜 함수 매개 변수가 다르다? 자신감 온라인 편집기에서이

exports.getJobs = function(args, res, next) 

을 그리고 자신감 허브 편집기에서이

exports.getJobs = function(page) 

하지만 왜입니까? 어느 것이 올바른 것을 사용합니까? 전달되지 않으면 swagger hub에서 매개 변수 res (예 : 헤더 설정)를 어떻게 사용할 수 있습니까?

답변

0

코드 생성은 Swagger Codegen에 의해 제공됩니다. 분명히 Swagger Editor와 SwaggerHub는 서로 다른 버전의 codegen을 사용합니다. "올바른"코드 겐이 없으며, 구 버전과 최신 버전이 있습니다. 편집기 개발자와 SwaggerHub 개발자에게 연락하여 각 도구에서 사용하는 코드gen 버전을 확인할 수 있습니다.

는 일관된 결과를 얻으려면, 당신은 CODEGEN의 CLI version을 다운로드하여 직접 실행할 수 있습니다

java -jar swagger-codegen-cli-2.2.3.jar generate -i http://petstore.swagger.io/v2/swagger.yaml -l nodejs-server -o Petstore