Поделиться через


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

Указав URI в веб-обозревателе, можно получить доступ к службе, предоставляющей канал Протокол Open Data Protocol (OData) . URI предоставляет адрес ресурса, и сообщения запроса отправляются по этим адресам для доступа или изменения базовых данных, представляемых ресурсом. Обозреватель формирует команду HTTP GET и возвращает запрошенный ресурс в виде канала 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.

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

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

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

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

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

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

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

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

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

См. также

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

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