Каков наиболее эффективный способ отправки полезных данных OData по проводам?"Плотный JSON?" - PullRequest
1 голос
/ 09 марта 2012

Я разрабатываю распределенное приложение, которое будет состоять из множества REST-сервисов. В последнее время я возвращался к вопросу о том, реализовывать ли мои REST-сервисы с помощью ASP.NET MVC 4 Web API или OData. Кажется, что веб-API когда-нибудь будет тем, что мне нужно, но сейчас он только наполовину испечен. В частности, он имеет только частичную реализацию запросов URI в стиле OData и не выполняет гипермедиа «из коробки».

Так что это заставляет меня еще раз внимательно взглянуть на OData. Мне очень нравятся возможности запросов URI и структурные гипермедиа для отложенной загрузки; Я думаю, что я буду использовать эти функции в моем приложении. Однако спецификация Atom Pub представляется крайне неэффективной.

Недавно я прочитал пост об эффективном формате для OData , в котором упоминается "плотный JSON", но такая вещь, по-видимому, на самом деле не существует. Это правда? И даже если такого понятия, как плотный JSON, не существует, обычный JSON все же намного эффективнее, чем Atom Pub, верно?

Есть ли ситуации, когда я хотел бы использовать Atom Pub поверх JSON?

1 Ответ

1 голос
/ 09 марта 2012

Там должно быть очень мало различий между ATOM и JSON на семантическом уровне с OData.Кроме того, большинство серверов OData (наверняка, WCF Data Services) поддерживают оба, так что клиент выбирает, какой из них использовать.Как упоминается в сообщении в блоге от Пабло, для получения наилучшего размера полезной нагрузки необходимо включить HTTP-сжатие.Он отлично работает как на ATOM, так и на JSON.

Чтение JSON имеет тенденцию быть быстрее (разбор XML довольно дорогой), но это если вы беспокоитесь о загрузке ЦП клиентом.Если я правильно помню, в прошлый раз, когда я видел числа, размер сжатой полезной нагрузки для ATOM и JSON не сильно отличается.

ATOM PUB обычно проще использовать в клиенте, который имеет хорошие библиотеки XML или ATOM, а неJSON.И наоборот.Но кроме этого, не должно быть большой разницы.

...