2016-09-27 2 views
8

Google은 API에 대해 유효한 Swagger 정의가 포함 된 완전 독창적 인 웹 앱을 보유하고 있습니다. API는 자체 도커 컨테이너에서 실행되며 docker-compose를 사용하여 모든 것을 조율합니다. http://api:8443/apidocs.json에있는 Swagger 정의를 기반으로 Ruby 클라이언트를 생성하고 싶습니다.public swagger-generator 고정 이미지를 사용하여 클라이언트를 생성하려면 어떻게해야합니까?

here 문서를 통해 클라이언트 및 서버 코드 생성을 위해 Swagger's public docker image이되었습니다. 안타깝게도 문서가 부족하고 실제로 docker 이미지로 클라이언트를 생성하는 예제가 없습니다.

Dockerfile은 해당 컨테이너가 웹 서비스를 실행하고 있음을 나타냅니다. 웹 서비스는 http://generator.swagger.io 만 부인할 수 있습니다. 따라서, 나는 다음과 같은 명령을 사용하여 클라이언트를 생성 할 수 있기를 기대 : 여기

curl -X POST -H "content-type:application/json" -d \ '{"swaggerUrl":"http://api:8443/apidocs"}' \ http://swagger-generator:8080/api/gen/clients/ruby

운. 나는 swagger 정의가 (npm -q install -g swagger-tools >/dev/null) && swagger-tools validate http://api:8443/apidocs으로 유효하다는 것을 확인했지만 "잘못된 swagger 정의"를 계속 얻습니다.

아이디어가 있으십니까?

답변

4

이 실제로 당신이 올바른지, 당신이 언급하고있는 고정 표시기 이미지 http://generator.swagger.io

당신이 발생하는 문제에 사용되는 것과 동일한 이미지 입력 ​​매개 변수가 올바르지 않습니다이다.

이제 swagger-generator에는 웹 인터페이스가 있습니다. 그래서 일단 지시를 내리면 브라우저에서 열어보십시오.

docker run -d -e GENERATOR_HOST=http://192.168.99.100 -p 80:8080 swaggerapi/swagger-generator 

은 다음 http://192.168.99.100

여기서 중요한 부분에 대한 자신감-UI를 열 수 있습니다 당신이 전화 구문을 볼 수있는 UI를 사용할 수있다 : 예를 들어 (컴퓨터의 IP 주소로 GENERATOR_HOST 교체) . 클라이언트를 생성하는 경우 http://192.168.99.100/#!/clients/generateClient으로 이동하여 생성 할 언어를 선택하고 오른쪽에있는 페이로드를 클릭하십시오. swaggerUrl 필드를 서버 주소로 바꿉니다.

컬의 출력을 사용하여 명령 행에서 호출하는 f}을 이해할 수 있습니다. 거기에서 쉬워야합니다.

제 3 자 도구가 배설물 정의가 유효하다고해서 실제로는 의미가 없음을 명심하십시오. 그래도 그게 문제는 아니지만 제 3 자 도구의 마일리지는 다를 수 있습니다 ...

+1

감사의 말씀과 도움이되는 정보를 제공해 주셔서 감사합니다! 저주받은 발전기 컨테이너의 로그를 조사한 결과 오류가 제기 된 것은 "에 의해 거부 된 연결"과 같은 것이 었습니다. 그리고 컬 요청의 출력에 따른 오류는 "유효하지 않은 정의"였습니다. 별로 도움이되지 않는 결과물입니다. :(swaggerUrl 옵션을'http : // api/apidocs.json'으로 수정 한 후 작동하게했습니다. – mycargus

관련 문제