Генерация клиентов для API с использованием Autorest не распознает модели или объекты, используемые в API. - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть три проекта в моем решении, один из которых содержит классы контроллеров API, другой - все сущности, модели и классы Db, а третий - где я генерирую клиентов для своих API, используя autorest и swagger JSon.Проект моделей / сущностей упоминается в моем проекте клиентовЯ использую приведенный ниже скрипт для генерации клиентов:

@echo off

IF "x%1"=="x" GOTO :usage

..\..\packages\autorest.0.17.3\tools\AutoRest -Namespace MyClient -ClientName MyApi -AddCredentials true -Header NONE -CodeGenerator Azure.CSharp -Input %1
GOTO :exit

:usage
echo Usage: GenClient ^<swagger.json^>

:exit

Файлы swagger.json имеют объекты, подобные приведенным ниже:

MyNamespace.MyUser": {
      "type": "object",
      "properties": {
        "Company": {
          "maxLength": 100,
          "minLength": 0,
          "type": "string"
        },
        "CountryName": {
          "maxLength": 100,
          "minLength": 0,
          "type": "string"
        },
        "RegionName": {
          "maxLength": 100,
          "minLength": 0,
          "type": "string"
        },
      },
      "x-ms-external": true
    }

Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда я генерируюклиентам с этой командой я должен явно добавить операторы использования для всех пространств имен моделей / сущностей.например, здесь во всех трех созданных файлах (UserOperationsExtensions, UserOperations, IUserOperations).Я должен пойти и добавить строку «using MyNamespace».потому что клиент в другом проекте?Как я могу решить это?мне очень утомительно добавлять его каждый раз, когда я создаю новую модель и использую ее в своих API.

...