_Maxxx_ Ответов: 0

Как вернуть релевантные данные из web API


У нас есть таблицы в нашей базе данных с сотнями столбцов (с некоторыми, но не очень ссылочной целостностью).
В моем веб - приложении я хочу показать список сущностей (например, список клиентов) - поэтому я действительно хочу только сбить идентификатор, имя и, возможно, пару других столбцов.
Когда пользователь выбирает клиента, я могу затем вызвать другой API, чтобы получить дополнительные сведения для отображения и/или обновления.
В других областях моих приложений могут потребоваться другие поднаборы данных. Некоторые могут требовать соединения с другими таблицами (например, соединение с таблицей CustomerType), другие-нет.

Есть много техник, которые мы могли бы использовать для достижения этого - то, что я ищу, это ваш опыт - то, что сработало (или не сработало) для вас.

Что я уже пробовал:

Определение множества небольших классов для возврата (Customer, Customer_List, Customer_Detail_List)

Всегда приносите все данные о клиентах вместе с любыми ссылочными полевыми данными.

Определение множества представлений SQL (Customer_List, Customer_Detail_List) и использование ORM для возврата из каждого из них.

Gerry Schmitz

Я бы, наверное, попробовал сначала убрать то, что там есть.

Посмотрите, сколько избыточности существует. То, что "устарело" / не заявлено.

Подумайте о "шаблонах". Генерация кода.

(Предоставьте пользователям копию и MS Access)

_Maxxx_

Спасибо. мы не можем изменить то, что там есть, поскольку оно используется во всей своей денормализованной славе CRM-системой
Не знаете, как предоставление пользователям MS Access поможет в любом случае?

Eric Lynch

Сериализация с чем-то вроде JSON.NET может также позволить вам опустить значения null/default. Таким образом, если вы используете nullables или имеете хорошее значение по умолчанию, которое можно использовать для отсутствующих элементов, вы можете значительно уменьшить размер сериализованных данных во время транспортировки. Это может позволить вам использовать один класс.

_Maxxx_

Мы делаем это, но это все равно приводит к классу на клиенте из 700+ полей - и когда мне просто нужен список идентификаторов и имен клиентов, это, очевидно, совершенно излишне!

0 Ответов