Комментарии 3
Приношу извенения за дублирование статьи, в первый раз когда нажал «опубликовать» хабр сообщил что страница устарела. Видимо в первый раз публикация все же прошла успешно. Скрыл первую в черновики.
Ну документировано там почти все. Опять же можно идти через dynamic.
Status, Meta, Data, Error отдается всегда.
Я начал делать ручками и отредактировал почти все. Заминка щас со свободным временем и внесезоньем. Нет реальных данных из АПИ. Вообще нужно завести новый акк и делать интергационные тесты через него.
Большинство АПИ, включая тестовые выдают что-то из этого (я вынес в интерфейсы).
Только танки. Поле Data.
Плюс несколько вариаций Meta.
Собственно у мeня не совсем получилось сделать обертку вокруг всего этого с HttpClient. Уж очень много всего получается.
Думал о SQRS, но там работы дофига.
Плюс на каждый класс надо делать дофига тестов чтобы оно не сломалось после обновления.
Status, Meta, Data, Error отдается всегда.
Я начал делать ручками и отредактировал почти все. Заминка щас со свободным временем и внесезоньем. Нет реальных данных из АПИ. Вообще нужно завести новый акк и делать интергационные тесты через него.
Большинство АПИ, включая тестовые выдают что-то из этого (я вынес в интерфейсы).
Только танки. Поле Data.
T Data { get; set; }
IList<T> Data { get; set; }
Dictionary<int, IList<T>> Data { get; set; }
Dictionary<string, T> Data { get; set; }
Dictionary<int, Dictionary<string, Dictionary<string, IList<T>>>> Data { get; set; } // в тестовом виде.
Dictionary<string, Dictionary<string, IList<T>>> Data { get; set; }
Плюс несколько вариаций Meta.
Собственно у мeня не совсем получилось сделать обертку вокруг всего этого с HttpClient. Уж очень много всего получается.
Думал о SQRS, но там работы дофига.
Плюс на каждый класс надо делать дофига тестов чтобы оно не сломалось после обновления.
Да, вы правы — документация там очень хорошая. Но, как неоднократно повторял в статье, из документации нет возможности понять что ожидать в узлах:
А вот для простых типов полей вся необходимая информация есть. Местами по разному но тем не менее все остальное указано.
T
или
List<T>
или
Dictionry<int,T>
Именно эти правки после генерации кода необходимо вносить руками. Соответственно этот момент сильно мешает сделать полностью рабочую и более простую реализацию сгенерированного клиентского кода.А вот для простых типов полей вся необходимая информация есть. Местами по разному но тем не менее все остальное указано.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Генерация C# клиента для Wargaming API