Использование службы OData в клиентском приложении (WCF Data Services)

Указав URI в веб-браузере, можно получить доступ к службе, предоставляющей канал Протокол Open Data Protocol (OData). URI предоставляет адрес ресурса, и сообщения запроса отправляются по этим адресам для доступа или изменения базовых данных, представляемых ресурсом. Браузер формирует команду HTTP GET и возвращает запрошенный ресурс в виде канала OData. Дополнительные сведения см. в разделе Доступ к веб-каналам OData из веб-браузера (краткое руководство по службам WCF Data Services).

Хотя веб-браузер может быть полезен для проверки того, что служба OData возвращает ожидаемые данные, доступ к производственным службам OData, позволяющим создавать, обновлять и удалять данные, обычно осуществляется из кода приложения или языков создания скриптов на веб-странице. В данном разделе приводятся общие сведения о доступе к каналам OData из клиентского приложения.

Доступ и изменение данных с помощью семантики REST

OData помогает осуществить взаимодействие между службами, предоставляющими доступ к веб-каналам и приложениям OData, в которых используются веб-каналы OData. Приложения получают доступ к данным и изменяют их в службе на основе OData путем отправки сообщений с запросами определенных действий HTTP и указанием URI-адреса, определяющего ресурс сущности, с которым необходимо выполнить действие. Если необходимо передать данные сущности, они передаются в специально закодированных полезных данных в тексте сообщения.

Действия HTTP

Службы OData поддерживают следующие действия HTTP для создания, чтения, обновления и удаления данных сущностей, представленных адресуемыми ресурсами.

  • HTTP GET — это действие по умолчанию для доступа к ресурсу из браузера. Сообщение запроса не содержит полезных данных, а возвращается метод ответа с полезными данными, содержащими запрошенные данные.

  • HTTP POST — вставляет данные новой сущности в переданный ресурс. Вставляемые данные передаются в виде полезных данных сообщения запроса. Полезные данные ответного сообщения содержат данные созданной сущности. К ним относятся все ключевые значения, формируемые автоматически. Заголовок содержит также URI, адресующий ресурс новой сущности.

  • HTTP DELETE — удаляет данные сущности, представленной указанным ресурсом. Полезные данные в сообщениях запроса и ответа отсутствуют.

  • HTTP PUT — заменяет существующие данные сущности в запрошенном ресурсе новыми данными, указанными в полезных данных в сообщении запроса.

  • HTTP MERGE — в связи с низкой эффективностью выполнения удаления и последующей вставки в источник данных, целью которого является только изменение данных сущности, службы OData представляют новое действие HTTP MERGE. Полезные данные сообщения запроса содержат свойства, которые необходимо изменить в адресуемом ресурсе сущности. Поскольку метод HTTP MERGE не определен в спецификации HTTP, ему может потребоваться дополнительная обработка для отправки запроса HTTP MERGE через серверы, не поддерживающие службы OData.

Дополнительные сведения см. в разделе OData: операции.

Форматы полезных данных

Для запросов HTTP PUT, HTTP POST или HTTP MERGE полезные данные сообщения запроса содержат данные сущности, отправляемые службе данных. Содержимое полезных данных зависит от формата данных сообщения. Ответы HTTP на все действия, кроме DELETE, также содержат полезные данные. Службы OData поддерживают следующие форматы полезных данных для доступа и изменения данных с использованием службы.

  • Atom — кодировка сообщений на основе XML, определенная в службах OData как расширение протокола публикации Atom (AtomPub) для поддержки обмена данными через HTTP для веб-каналов, подкастов, вики и функций Интернета на основе XML. Дополнительные сведения см. в разделе OData: формат Atom.

  • JSON — нотация объектов JavaScript (JSON) представляет собой облегченный формат обмена данными на основе подмножества языка программирования JavaScript. Дополнительные сведения см. в разделе OData: формат JSON.

Формат сообщения полезных данных запрашивается в заголовке HTTP-запроса. Дополнительные сведения см. в разделе OData: операции.

Доступ и изменения данных с помощью клиентских библиотек

В состав служб Службы WCF Data Services входят клиентские библиотеки, упрощающие использование каналов OData из клиентских приложений как на основе .NET Framework, так и на основе Silverlight. Эти библиотеки упрощают отправку и получение сообщений HTTP. Кроме того, они преобразуют полезные данные сообщений в объекты CLR, представляющие данные сущностей. Клиентские библиотеки содержат два базовых класса: DataServiceContext и DataServiceQuery<TElement>. Эти классы позволяют отправлять запросы к службе данных и работать с возвращенными данными сущностей как с объектами CLR. Дополнительные сведения см. в разделах Данные клиента (WCF Data Services) и WCF Data Services (Silverlight).

Для добавления ссылки на службу данных можно использовать диалог Добавление ссылки на службу в среде Visual Studio. Эта программа запрашивает метаданные службы у упомянутой службы данных и формирует контекст DataServiceContext, который представляет службу данных, а также клиентские классы службы данных, которые представляют сущности. Дополнительные сведения см. в разделе Формирование классов службы данных клиента (WCF Data Services).

Для использования канала OData в клиентских приложениях других видов существуют другие программные библиотеки. Дополнительные сведения см. в разделе OData SDK.

См. также

Основные понятия

Доступ к службе OData (WCF Data Services)

Краткое руководство (службы WCF Data Services)