Книга: Дефрагментация мозга. Софтостроение изнутри

Слой веб-служб и интерфейсов доступа (ServiceStack)

Слой веб-служб и интерфейсов доступа (ServiceStack)

Генерируемые для слоя веб-служб C#-файлы предназначены для создания двух сборок: собственно служб и интерфейсов к ним, используемых клиентами.



Рис. 25. Классы, реализующие службы доступа к объектам домена


Рис. 26. Класс службы сохранения объектов

Интерфейсы доступа к службам также содержат описания перечислимых типов с локализацией, классы DTO для передачи состояния между программой-клиентом и доменом, классы для непосредственного доступа к вызовам служб.


Рис. 27. Перечисляемый тип слоя веб-служб


Рис. 28. Классы вызова специфицированных методов


Рис. 29. Классы вызова веб-служб, касающихся «финансового года»


Рис. 30. Класс адаптера для работы с объектом «Финансовый год»


Рис. 31. Класс адаптера для работы с коллекцией объектов «Финансовый год»

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

Пример работы с DTO

CurrencyDTO curr1 = new CurrencyDTO();

curr1.Code = "RUR";

curr1.Name = "Currency 1";

UnitOfWorkDTO uow = new UnitOfWorkDTO();

uow.Save(curr1);

PersistenceRequest prq1 = new PersistenceRequest();

prq1.UnitOfWork = uow;

PersistenceResponse prr1 = client.Post<PersistenceResponse>("/Persistence", prq1);

Assert.IsFalse(prr1.CommitResult.HasError, prr1.CommitResult.Message);

Пример работы с адаптерами

Currency curr1 = new Currency();

curr1.Code = "RUR";

curr1.Name = "Currency 1";

CommitResult cr1 = curr1.Save();

Assert.IsFalse(cr1.HasError, cr1.Message);

Оглавление книги


Генерация: 1.274. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз