2016-12-05 4 views
6

Я создал свой клиент, используя язык typescript2/angular2, используя генератор кода swagger codegen.swagger typescript/angular2 client

Я не могу понять, что было создано и как использовать артефакты.

Насколько мне удалось выяснить, заголовки не включены по запросу в create (user и passwd). В противном случае я не понимаю, как делаются запросы. Я установил точку останова внутри обратного вызова метода map, и он никогда не был достигнут.

Вы можете посмотреть на UsersApi.ts.

+3

по состоянию на февраль 2017 года, как лучше, как я могу сказать, никто не делал любую работу, чтобы задокументировать, как использовать Generat ed Angular 2 client. Документация Swagger-codegen гласит, что вы должны ссылаться на README, включенную в загруженный клиент. Нет файла README, поэтому я предполагаю, что это простой случай, когда никто не хочет писать документацию (смешно иронично, учитывая тему - Программное обеспечение, которое помогает автоматизировать документацию, не имеет самой документации). – pspahn

+0

Если вы использовали swagger 2.2.2, это было прослушивание, новая версия 2.2.3 значительно изменила сгенерированный код. Я бы попробовал это, прежде чем продолжить, хотя вы, вероятно, уже сейчас. – PeterS

ответ

0

В моем текущем проекте я использую созданный клиентом сгенерированный скриптом (typescript/ng2).

Сначала я беру сгенерированный вывод и помещаю его в свой проект. Вы можете автоматизировать это или нет. В зависимости от того, насколько изменится ваш api. Я поместил мой в «app/core/api», и это включает папку api и папку модели и полдюжины или около того других файлов. и папку .swagger-codegen (хотя я не уверен на 100%, что это необходимо).

  1. Создайте сервис, чтобы обернуть ваше использование сгенерированного api, отделив от него ваши компоненты (в случае его изменения). Поэтому для вашего примера я бы создал свой собственный user.service.ts, который будет использоваться моими компонентами.
  2. В вашем классе UserService вам необходимо импортировать public api из сгенерированного кода. это обычно в api/index.ts или просто: import * как клиент из 'app/core/api'; Это проще, если у вас есть только один api. если у вас несколько, они экспортируются в виде массива APIS из api/api.ts/
  3. Чтобы использовать api, вам не нужно создавать заголовки или параметры или любое из них. у сгенерированной службы есть методы, которые должны принимать значения, необходимые для вызова, и обрабатывают создание объектов запроса и ответа json. Просматривая папку с образцами, а сама сервисная служба должна сделать это немного яснее. но для вашего примера у вас есть только 2 метода. создавать и существовать. в вашем UserService вы создаете метод CreateUser или все, что вам нравится, и внутри него вы вызываете метод api create. передайте ему строку имени пользователя и строку пароля. вот и все. он возвратит наблюдаемое из того, что возвращает вызов api (он преобразует json-ответ в объект типа typecript (определенный в каталоге моделей в сгенерированном api-коде).
  4. Для вашего примера, похоже, не используются пользовательские объекты метод create просто возвращает Observable < {}>. Таким образом, вы можете позвонить ему и отобразить ответ на свой собственный экземпляр класса пользователя и использовать его для привязки к вашему шаблону. Опять оставаясь отсоединенным от деталей api.

Надеется, что это помогает. Я был бы рад ответить на более конкретные вопросы.

Смежные вопросы