1.3.1 • Published 6 years ago

eirc-w-extjs-api-generator v1.3.1

Weekly downloads
2
License
ISC
Repository
-
Last release
6 years ago

Генератор кода для проектов ЕИРЦ

Данная утилита предназначена для генерации ExtJS пакета с классами для организации доступа к API сервера на основе описания в формате WSDL.

Инсталяция

Если ваш WSDL хранится в репозитории типа Mercurial, то установите на свой компьютер командную строку Mercurial. Для работы данного пакета требуется чтобы была глобально доступна команда hg.

Далее, перейдите в директорию вашего рабочего пространства ExtJS (все команды следует выполнять только в нем):

cd <Рабочее пространство вашего проекта>

Добавьте зависимость в ваш проект:

npm install eirc-w-extjs-api-generator --save-dev

В файле package.json вашего проекта добавьте следующие скрипты:

{
  "scripts": {
    "api:generate": "api generate",
    "api": "api"
  }
}

Инициализируйте генератор:

npm run api -- init

После инициализации в корне вашего рабочего пространства ExtJS будет создан файл api.json. По умолчанию, этот файл будет настроен следующим образом:

{
  "name": "eirc-api",
  "namespace": "Eirc.server.api",
  "wsdl": {
    "repository": {
      "type": "mercurial",
      "url": "http://sopr:SOPR@hg.eirc.mos.ru/base_model"
    },
    "path": "wsdl",
    "ignore": [
        "cbsc", "Adapters", "SocialSupport", "Proxies",
        "OracleBpmProcessService", "ExternalCallback", "Debtor"
    ]
  }
}

Если файл не был создан, то его придется создать вручную.

Внимание, поле name содержит имя пакета, который будет генерироваться. Если у вас уже есть такой пакет, то он будет удален! Поэтому обязательно проверьте поле name.

Пробная генерация АПИ пакета:

Если все соответствует действительности, то после этого можно сразу начать генерацию пакета с АПИ сервера:

npm run api:generate

Пакет будет сгенерирован в директорию:

./packages/local/<Название пакета>

Теперь, когда вам понадобится обновить пакет с АПИ, то достаточно будет запустить команду npm run api:generate.

Хранение сгенерированного пакета

По идее, все что генерируется не следует хранить в репозитории. Но в этом случае у вас должна быть гарантия, что сможете этот пакет заново восстановить. На данный момент это можно сделать либо по номеру ревизии из репозитория, где хранится WSDL либо хранить сгенерированный пакет в репозитории вашего пакета. Пока рекомендуется выполнять второй вариант.

Конфигурационный файл ./api.json

Файл содержит имя генерируемого пакета, его пространство имен и информацию откуда брать данные для генерации. Для генерации пакета достаточно указать директорию или репозиторий, где находятся WSDL и XSD файлы.

Пример файла, где в качестве источника данных указана локальная директория:

{
  "name": "eirc-api",
  "namespace": "Eirc.api",
  "wsdl": {
    "path": "wsdl",
    "ignore": ["cbsc"]
  }
}

Для загрузки WSDL из репозитория в конфигурационный файл в поле wsdl следует добавить тип и URL репозитория:

{
  "wsdl": {
    "repository": {
      "type": "mercurial",
      "url": "http://sopr:SOPR@hg.eirc.mos.ru/base_model"
    },
    "path": "wsdl",
    "ignore": ["cbsc"]
  }
}

В данном случае поле path используется для указания директории относительно корня репозитория.

Опция ignore используется для игнорирования директорий и файлов. Это массив строк, в которых можно указывать регулярные выражения. Директории, которые совпадут с этими выражениями будут исключены из обработки.

Команды

Для просмотра информации из WSDL:

npm run api -- list

Для просмотра списка методов сервиса:

npm run api -- list <имя службы>