Комментарии 3
Приношу извенения за дублирование статьи, в первый раз когда нажал «опубликовать» хабр сообщил что страница устарела. Видимо в первый раз публикация все же прошла успешно. Скрыл первую в черновики.
0
Ну документировано там почти все. Опять же можно идти через 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, но там работы дофига.
Плюс на каждый класс надо делать дофига тестов чтобы оно не сломалось после обновления.
0
Да, вы правы — документация там очень хорошая. Но, как неоднократно повторял в статье, из документации нет возможности понять что ожидать в узлах:
А вот для простых типов полей вся необходимая информация есть. Местами по разному но тем не менее все остальное указано.
T
или
List<T>
или
Dictionry<int,T>
Именно эти правки после генерации кода необходимо вносить руками. Соответственно этот момент сильно мешает сделать полностью рабочую и более простую реализацию сгенерированного клиентского кода.А вот для простых типов полей вся необходимая информация есть. Местами по разному но тем не менее все остальное указано.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Генерация C# клиента для Wargaming API