В чем преимущество использования OData с Web API?
Я уже использую стандартный WebAPI и возвращаю объекты JSON моему клиенту. Теперь я увидел приложение, которое вернуло OData.
может кто-нибудь объяснить, есть ли у меня какие-либо причины использовать OData, если я не хочу запрашивать свои данные ни от чего, кроме моего собственного клиента, работающего в браузере. Есть ли преимущества, которые я мог бы получить с помощью OData ?
3 ответов
Если вы используете свои данные только в своем собственном браузерном приложении, есть только несколько преимуществ для использования OData в вашей ситуации:
- OData может предоставить метаданные о вашем интерфейсе службы, которые могут быть использованы для создания клиентского кода для доступа к службе. Поэтому, если у вас есть много клиентских классов, которые вам нужно создать, это может ускорить ваш процесс. С другой стороны, если вы можете поделиться своими классами между сервером и ASP.NET основанный клиент или если вы только имейте несколько классов, это может быть не актуально в вашей ситуации.
- еще одним большим преимуществом в вашей ситуации является поддержка общих запросов к данным службы. OData поддерживает
IQueryable
чтобы вы могли решить на стороне клиента, как фильтровать данные, которые предоставляет служба. Таким образом, вам не нужно выполнять различные действия или использовать параметры запроса для предоставления отфильтрованных данных. Это также означает, что если вам нужен новый фильтр для вашего клиента, очень вероятно, что вы не нужно менять сервер и можно просто поставить запрос на стороне клиента. Возможные фильтры включают выражения $filter для фильтрации данных, а также такие операции, как $skip и $top, которые полезны при подкачке данных. Дополнительные сведения об OData и запросах см. В разделе ссылке.
полный обзор OData и Web API см. в этом разделе ссылке.
вот несколько преимуществ OData.
- OData-это открытый протокол, запущенный Microsoft, основанный на службах Rest, поэтому мы можем получить базу данных по URL.
- он suppport Различный протокол как http, atom, pub и также поддерживает формат JSON.
- нет необходимости создавать прокси-классы, которые мы использовали для этого в веб-службе.
- вы сможете написать свои собственные методы.
- очень облегченно поэтому взаимодействие между клиентом и сервер будет быстрым по сравнению с веб-сервисом и другими технологиями.
- очень прост в использовании.
вот несколько ссылок связи.
http://sandippatilprogrammer.wordpress.com/2013/12/03/what-is-odata-advantages-and-disadvantages/
http://geekswithblogs.net/venknar/archive/2010/07/08/introduction-odata.aspx
http://www.zdnet.com/blog/microsoft/why-microsofts-open-data-protocol-matters/12700
Я согласен с ответами, уже опубликованными, но как дополнительное понимание...
Вы упомянули, что:
... если я не хочу запрашивать свои данные из чего-либо, кроме моего собственного клиент работает в браузере...
возможно, вы не захотите его запускать обычно через что угодно, кроме вашего собственного cilent, но с помощью oData вы можете использовать другие инструменты запросов для отладки. Например помощью linqpad позволяет использовать oData конечные точки (например, предоставляемые stackoverflow).
вероятно, это недостаточно хорошая причина для реализации oData, если у вас нет другой причины для этого, но это дополнительный бонус.