2016-09-27 21 views
8

API için geçerli bir Swagger tanımına sahip tam dockerized web uygulamasına sahibiz. API kendi docker kabında çalışır ve biz her şeyi düzenlemek için docker-compose kullanıyoruz. http://api:8443/apidocs.json'da bulunan Swagger tanımına dayalı bir Ruby istemcisi oluşturmak istiyorum.İstemci oluşturmak için genel yağmacı-jeneratör docker görüntüsünü nasıl kullanırım?

here numaralı belgeyi döktüm, bu da beni istemci ve sunucu kodu oluşturmak için Swagger's public docker image'a yönlendirdi. Ne yazık ki, dokümantasyon eksiktir ve gerçekte docker görüntüsüyle bir istemci oluşturmak için hiçbir örnek sunmamaktadır.

Dockerfile kapsayıcısının, yalnızca http://generator.swagger.io dockerleştirilmiş sürümü olduğunu varsayabileceğim bir web hizmeti çalıştırdığını gösterir. Bunun gibi, aşağıdaki komutla bir istemci oluşturmak edebilmek için beklenir: Burada

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

şansımız yok. Ben swagger tanımının (npm -q install -g swagger-tools >/dev/null) && swagger-tools validate http://api:8443/apidocs ile geçerli olduğunu doğrulamam rağmen "geçersiz swagger tanımı" almaya devam ediyorum.

Herhangi bir fikrin var mı?

cevap

4

gerçekten doğru olan, senin bahsettiğin liman işçisi görüntü http://generator.swagger.io

Karşılaştığınız sorun kullanılan aynı görüntü giriş parametresi doğru değildir olmasıdır.

Şimdi bunu doğru şekilde öğrenmek için, havalı-jeneratörün bir web arayüzüne sahip olduğunu unutmayın. Bir kez başlattığınızda, talimatların yaptığı gibi, bir tarayıcıda açın.

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

o zaman http://192.168.99.100

burada önemli bir parçası üzerindeki dayı-ui açabilirsiniz Çağrı sözdizimi görmek için arayüzünü kullanabilirsiniz yani: Örneğin (makinenizin IP adresi ile GENERATOR_HOST değiştirin) . Bir müşteri oluşturuyorsanız, oluşturmak istediğiniz dile http://192.168.99.100/#!/clients/generateClient gidin ve sağdaki yükü tıklayın. swaggerUrl alanını, sunucunuzun ve voila'nın adresiyle değiştirin.

Çıktıyı komut satırından nasıl arayacağınızı öğrenmek için kıvrımdaki kullanabilirsiniz. Oradan kolay olmalı.

Lütfen 3. parti araçlarının swagger tanımının geçerli olduğunu belirttiğinden, bunun gerçekte olduğu anlamına gelmediğini unutmayın. Bunun sizin sorununuz olduğunu düşünmüyorum, ama 3. parti araç kilometresi değişebilir ...

+1

Bilgilendirici bilgi ve açıklama için teşekkür ederiz! Yağma jeneratörü haznesinin günlüklerini kazandıktan sonra, " tarafından reddedilen bağlantı" gibi bir hata oluştuğunu gördüm. Yine de, curl isteğinin çıktısına göre hata "geçersiz swagger tanımı" idi. Bu kadar faydalı çıktı değil. :(swaggerUrl seçeneğini http: // api/apidocs.json' olarak düzelttikten sonra çalışıyorum. – mycargus

İlgili konular