5

Скажите, что у вас есть приложение-менеджер рецептов, которое вы создаете с помощью проекта Web Api. Вы отправляете список рецептов вместе со своими именами ингредиентов в JSON? Или вы отправляете рецепты, имена ингредиентов и детали? Каков процесс определения того, насколько велика начальная полезная нагрузка для SPA?Как вы определяете, сколько данных нужно нажимать на пользователя в приложениях с одной страницей?

ответ

12

Они являются определяющими факторами, сколько для отправки клиента на начальной странице:

  1. данных, который будет отображаться на эту первую страницу
  2. списка просмотра данных для какого-либо падения падения на этой странице
  3. Данные, которые необходимы для представления и правил (может не отображаться, но используется)

на странице рецепта, которая будет показывать список рецептов, я хотел бы получить рецепты и некоторые ключевые факторы для отображения (например, имя рецепта, блюдо и другая информация о ключе), которые могут отображаться в списке. Достаточно для того, чтобы пользователь мог определить, что выбрать. Затем, когда пользователь погружается в рецепт, перейдите к этой детали 1 рецепта.

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

+0

Спасибо John. Сейчас я смотрю на вас по множественной величине (ваш SPA-видео) - невероятная работа. – RobVious

+0

Спасибо @RobVious :) –

6

Процесс, по которому вы определяете, сколько данных отправлять исключительно зависит от опыта, который вы хотите предоставить своим пользователям, - однако это так просто. Если мой опыт требует, чтобы я с готовностью отобразил все рецепты с кратким описанием, а затем разрешил им проработать рецепт, чтобы получить дополнительную информацию, то я только собираюсь отправить достаточно информации для создания дисплея и перейти дальше в лицо.

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

И как вы можете видеть, это просто продолжается и продолжается.

+1

Это также чувствует себя более спокойным./recipes дает вам список рецептов (название, краткое описание) и указатель на фактический рецепт в say/recipes/super-yummy-meatballs, который затем содержит ингредиенты, метод и т. д. –

4

Это зависит от того, является ли ваше приложение простым HTTP-API, поддерживающим вашу веб-страницу, или ваша цель - нечто более похожее на платформу как сервис. Одним из драйверов для принятия SPA является то, что он делает браузер другим клиентом, как приложение для iOS или Android, или сторонним.

Если вы хотите поддерживать несколько клиентов, то вполне вероятно, что вы хотите создавать свои API-интерфейсы вокруг ресурсов, которые вы пытаетесь открыть, чтобы вы могли использовать единый интерфейс GET/POST/PUT и т. Д. ресурс. Это будет означать, что гораздо более вероятно, что вы не кодируете в стиле клиента, и ваш API будет использоваться широким кругом клиентов.

Ресурс - это все, что вы хотели бы иметь собственный URN.

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

В Huddle мы используем подход, ориентированный на документацию. То есть мы пишем документацию для нашего API спереди, чтобы мы могли понять, насколько полезен наш API. Вы можете измерить качество API в WTF.http://code.google.com/p/huddle-apis/

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

+0

Спасибо за подробный ответ Ян. Вопрос - в этом контексте, является PaaS просто API для стероидов? Веб-api, созданный специально для потребления несколькими клиентами (web/mobile/tablet/etc)? – RobVious

+1

Да, PaaS можно рассматривать как API на стероидах, т. Е. Вы просто строите целевые клиенты (возможно, неизвестные вам). –

0

Другая возможность - реализовать поддержку запросов OData для WebAPI. http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api

Таким образом, ваши клиенты могут выполнять свои собственные запросы, чтобы возвращать только те данные, которые им нужны.

 Смежные вопросы

  • Нет связанных вопросов^_^