2016-09-27 14 views
8

Mamy w pełni dokeryzowaną aplikację internetową z poprawną definicją Swagger dla interfejsu API. Interfejs API działa w osobnym kontenerze dokowania i używamy funkcji doker-compose do aranżowania wszystkiego. Chcę wygenerować klienta Ruby na podstawie definicji Swagger pod adresem http://api:8443/apidocs.json.Jak użyć publicznego obrazu dokera generatora falszywości do wygenerowania klienta?

Przekazałem dokumentację here, która doprowadziła mnie do Swagger's public docker image do generowania kodu klienta i serwera. Niestety brakuje dokumentacji i nie ma przykładów na faktyczne generowanie klienta z obrazem dokowania.

Numer Dockerfile wskazuje, że jego kontener uruchamia usługę sieciową, którą mogę tylko założyć, jest dokedaryzowana wersja http://generator.swagger.io. Jako takie, spodziewam się być w stanie wygenerować klienta za pomocą następującego polecenia:

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

szczęścia tutaj. Ciągle otrzymuję "nieprawidłową definicję łamacza", mimo że potwierdziłem, że definicja oszustwa jest ważna z (npm -q install -g swagger-tools >/dev/null) && swagger-tools validate http://api:8443/apidocs.

Wszelkie pomysły?

Odpowiedz

4

rzeczywiście masz rację, obraz doker masz na myśli to samo zdjęcie wykorzystane w http://generator.swagger.io

Emisja masz jest parametr wejściowy nie jest poprawny.

Teraz, aby to zrobić dobrze, należy pamiętać, że generator-swagger ma interfejs sieciowy. Po uruchomieniu, zgodnie z instrukcją, otwórz ją w przeglądarce. Na przykład (wymienić GENERATOR_HOST o adresie IP komputera):

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

następnie można otworzyć Swagger-ui na http://192.168.99.100

Ważną częścią jest to, że można korzystać z interfejsu użytkownika, aby zobaczyć składnię wywołania . Jeśli generujesz klienta, przejdź do http://192.168.99.100/#!/clients/generateClient wybierz język, który chcesz wygenerować, i kliknij ładunek po prawej stronie. Zastąp pole swaggerUrl adresem swojego serwera i voila.

Możesz użyć wyjścia w zawinięcie, aby dowiedzieć się, jak zadzwonić z wiersza poleceń. Powinno być łatwo stamtąd.

Należy pamiętać, że tylko dlatego, że narzędzie innej firmy mówi, że definicja krępowania jest ważna, nie oznacza, że ​​tak naprawdę jest. Nie sądzę, że to twoja sprawa, ale przebieg strony trzeciej może się różnić ...

+1

Dziękujemy za wyjaśnienie i udzielenie pomocnych informacji! Po zagłębianiu się w logach kontenera generatora pomijam, zobaczyłem, że zgłaszany błąd był podobny do "odmowy połączenia przez ". A jednak błąd zgodny z wynikiem polecenia zwijania to "nieprawidłowa definicja przeskoku". Nie tak pomocne wyniki, że. :(Mam go działa po poprawieniu opcji swaggerUrl na 'http: // api/apidocs.json' – mycargus

Powiązane problemy