2016-12-05 17 views
6

Wygenerowałem klienta przy użyciu języka typecript2/angular2 przy użyciu generatora kodu swagger codegen.Urządzenie typu swagger/copy3002 klient

Nie jestem w stanie dowiedzieć się, co zostało wygenerowane i jak korzystać z artefaktów.

O ile udało mi się rozgryźć, nagłówki nie są dostępne na żądanie w metodzie create (parametry user i passwd). W przeciwnym razie nie rozumiem, w jaki sposób są składane wnioski. Ustawiłem punkt przerwania wewnątrz metody wywołania zwrotnego metody map i nigdy nie został osiągnięty.

Możesz spojrzeć na UsersApi.ts.

+3

Począwszy od lutego 2017 roku, najlepiej jak mogę powiedzieć, nikt nie zrobił żadnych prac w celu udokumentowania sposobu korzystania z generat ed klient Angular 2. Dokumentacja programu Swagger-codegen mówi, że powinieneś zapoznać się z plikiem README dołączonym do pobranego klienta. Nie ma pliku README, więc domyślam się, że to prosty przypadek, w którym nikt nie chce pisać dokumentacji (zabawnie ironicznie, biorąc pod uwagę temat - Oprogramowanie, które pomaga zautomatyzować dokumentację, nie ma samej dokumentacji). – pspahn

+0

Jeśli korzystasz z narzędzia swagger 2.2.2, to było błędne, nowsza wersja 2.2.3 znacznie zmienia wygenerowany kod. Próbowałem tego przed kontynuowaniem, chociaż prawdopodobnie już to zrobiłeś. – PeterS

Odpowiedz

0

Używam generatora klienta typu "swagger codegen" (maszynopis/ng2) w moim bieżącym projekcie.

Najpierw biorę wygenerowane dane wyjściowe i umieszczam je w moim projekcie. Możesz zautomatyzować to, czy nie. W zależności od przewidywanej zmiany interfejsu API. Wprowadziłem moje do "app/core/api" i obejmuje to folder api i folder modelu oraz pół tuzina innych plików. oraz folder .swagger-codegen (choć nie jestem w 100% pewien, czy jest to potrzebne).

  1. Utwórz usługę, aby zawinąć korzystanie z wygenerowanego interfejsu API, tym samym oddzielając od niego swoje składniki (na wypadek gdyby uległa zmianie). Tak więc dla twojego przykładu utworzyłbym własny user.service.ts, który byłby używany przez moje komponenty.
  2. W swojej klasie UserService należy zaimportować publiczne api z wygenerowanego kodu. zazwyczaj jest to api/index.ts lub po prostu: import * jako klient z "app/core/api"; jest to prostsze, gdy masz tylko jedno API. jeśli masz wiele z nich, są eksportowane jako tablica o nazwie APIS z api/api.ts/
  3. Aby korzystać z api, nie musisz tworzyć nagłówków ani parameli ani nic z tego. wygenerowana usługa ma metody, które powinny przyjmować wartości wymagane przez wywołanie i obsługuje on żądania JRS i obiekty odpowiedzi. Przeglądanie folderu modeli i samej usługi ts powinno uczynić to nieco jaśniejszym. ale dla twojego przykładu masz tylko 2 metody. twórz i istnieje. w usłudze UserService tworzysz metodę o nazwie CreateUser lub cokolwiek chcesz i wewnątrz niej wywołujesz metodę create api. Przekaż mu ciąg nazwy użytkownika i ciąg hasła. to jest to. zwróci to, co można zaobserwować, niezależnie od tego, co wywołanie api zwróci (konwertuje odpowiedź json na obiekt typu maszynopis (zdefiniowany w katalogu modeli w kodzie generowanym przez interfejs API)
  4. Dla przykładu nie wygląda na to, że używa obiektów niestandardowych metoda create po prostu zwraca Observable < {}>. Możesz więc wykonać wywołanie i mapować odpowiedź na swoją własną instancję klasy User i użyć jej do powiązania z szablonem widoku, ponownie pozostając oddzielonym od szczegółów api

Nadzieja to pomaga. Byłbym szczęśliwy, aby odpowiedzieć na bardziej szczegółowe pytania.