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


Общие сведения о службах WCF Data Services

Службы Службы WCF Data Services позволяют создавать и использовать службы данных для Интернета и интрасети с помощью Протокол Open Data Protocol (OData) . Службы OData позволяют предоставлять данные в качестве ресурсов, доступ к которым осуществляется с помощью URI. Это позволяет обращаться к данным и изменять данные с помощью семантики REST, особенно для таких команд стандарта HTTP, как GET, PUT, POST и DELETE. В этом разделе приведен обзор обоих шаблонов и рекомендации для OData , а также возможности Службы WCF Data Services по использованию OData  в приложениях на базе .NET.

Адресация данных в виде ресурсов

OData предоставляет данные в качестве ресурсов, на которые могут указывать URI. Пути к ресурсам составляются на основе соглашений о связях сущностей модели EDM. Сущности в этой модели представляют операционные единицы данных в домене приложения, таких как клиенты, заказы, элементы и продукты. Дополнительные сведения см. в разделе Entity Data Model.

Адресация ресурсов сущностей в службах OData осуществляется в виде набора сущностей, содержащего экземпляры типов сущностей. Например, следующий URI http://services.odata.org/Northwind/Northwind.svc/Customers('ALFKI')/Orders возвращает все заказы из службы данных Northwind, связанной с клиентом, параметру CustomerID которого задано значение ALFKI..

Выражения запросов позволяют выполнять традиционные операции с запросами к ресурсам, такие как фильтрация, сортировка и подкачка страниц. Например, URI http://services.odata.org/Northwind/Northwind.svc/Customers('ALFKI')/Orders?$filter=Freight gt 50 фильтрует ресурсы, возвращая только заказы со стоимостью транспортировки, превышающей 50 долларов. Дополнительные сведения см. в разделе Доступ к ресурсам службы данных (службы WCF Data Services).

Доступ к данным с возможностью взаимодействия

В службах OData для обеспечения взаимодействия службы данных с приложениями, которые не используют платформу .NET Framework, используются стандартные протоколы Интернета. Возможность использования стандартных URI для адресации данных позволяет приложению обращаться к данным и изменять их с использованием семантики REST, в частности стандартных команд HTTP, таких как GET, PUT, POST и DELETE. Это позволяет обращаться к службам из любого клиента, поддерживающего синтаксический анализ и доступ к данным, передаваемым по стандартным протоколам HTTP. 

OData  определяет набор расширений для протокола публикации Atom (AtomPub). Он поддерживает запросы и ответы HTTP в нескольких форматах данных, что позволяет использовать различные клиентские приложения и платформы. Канал OData может представлять данные в формате Atom, формате нотации объектов JavaScript (JSON) и в виде простого XML. Atom является форматом по умолчанию. Формат канала указывается в заголовке HTTP-запроса. Дополнительные сведения см. в разделах OData: формат Atom и OData: формат JSON.

При публикации данных в виде канала OData для таких операций, как кэширование и проверка подлинности службы Службы WCF Data Services , используют другие существующие возможности Интернета. Для этого службы Службы WCF Data Services интегрируются с существующими ведущими приложениями и службами, например ASP.NET, Windows Communication Foundation (WCF) и Internet Information Services (IIS). 

Независимость хранения

Хотя ресурсы адресуются на базе модели EDM, службы Службы WCF Data Services предоставляют каналы OData независимо от базового источника данных. После того как службы Службы WCF Data Services принимают HTTP-запрос на ресурс, идентифицируемый URI, этот запрос десериализуется и представление запроса передается поставщику Службы WCF Data Services . Этот поставщик переводит запрос в формат, относящийся к конкретному источнику данных, и выполняет его в базовом источнике данных. В службах Службы WCF Data Services независимость хранилища достигается путем отделения концептуальной модели, адресующей ресурсы по протоколу OData , от конкретной схемы базового источника данных.

Службы Службы WCF Data Services интегрируются со средой ADO.NET Entity Framework, позволяя создавать службы данных, предоставляющие реляционные данные. Для создания модели данных, содержащей адресуемые ресурсы в виде сущностей и в то же время определяющей сопоставление между этой моделью и таблицами нижележащей базы данных, можно использовать программы для работы с моделью EDM. Дополнительные сведения см. в разделе Поставщик Entity Framework (службы WCF Data Services)

Службы Службы WCF Data Services позволяют создавать службы данных, предоставляющие любые структуры данных, которые возвращают реализацию интерфейса IQueryable. Это позволяет создавать службы данных, предоставляющие данные из типов .NET Framework. Для поддержки операций создания, обновления и удаления должен быть также реализован интерфейс IUpdatable. Дополнительные сведения см. в разделе Поставщик отражения (службы WCF Data Services).

Иллюстрация того, как службы Службы WCF Data Services интегрируются с этими поставщиками данных, см. на архитектурной схеме далее в этом разделе.

Пользовательская бизнес-логика

Службы Службы WCF Data Services упрощают добавление пользовательской бизнес-логики в службу данных с помощью перехватчиков и операций службы. Операции службы — это методы, определенные на сервере и адресуемые с помощью URI в том же формате, что и ресурсы данных. В работе службы также может использоваться синтаксис выражений запросов для фильтрации, упорядочения и разбивки на страницы данных, возвращенных операцией. Например, URI https://localhost:12345/Northwind.svc/GetOrdersByCity?city='London'&$orderby=OrderDate&$top=10&$skip=10 представляет вызов операции службы с именем GetOrdersByCity в службе данных Northwind, возвращающей заказы клиентов из Лондона, с разбиением результатов на страницы и сортировкой по OrderDate. Дополнительные сведения см. в разделе Операции службы (службы WCF Data Services).

Перехватчики позволяют разработчику интегрировать настраиваемую прикладную логику в процесс обработки запросов и ответов службы данных. Перехватчики вызываются при выполнении операции запроса, вставки, обновления или удаления над указанным набором сущностей. При этом перехватчик может изменить данные, применить политику авторизации и даже преждевременно завершить операцию. Методы перехватчика необходимо явно регистрировать для конкретного набора сущностей, предоставляемого службой данных. Дополнительные сведения см. в разделе Перехватчики (службы WCF Data Services).

Клиентские библиотеки

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

Службы Службы WCF Data Services включают клиентские библиотеки для клиентских приложений как на основе .NET Framework, так и на основе Silverlight. Эти клиентские библиотеки позволяют взаимодействовать со службами данных с помощью объектов .NET Framework. Кроме того, они поддерживают запросы на базе объектов и запросы LINQ, загрузку связанных объектов, отслеживание изменений и разрешение идентификаторов. Дополнительные сведения см. в разделе Клиентская библиотека служб WCF Data Services.

Помимо клиентских библиотек OData , включенных в платформы .NET Framework и Silverlight, имеются и другие клиентские библиотеки, позволяющие использовать канал OData в клиентских приложениях, созданных с помощью таких технологий, как PHP, AJAX и Java. Дополнительные сведения см. в разделе OData SDK.

Общие сведения об архитектуре

На следующей схеме показана архитектура служб Службы WCF Data Services для предоставления каналов OData , а также использование этих каналов в клиентских библиотеках, поддерживающих OData .

Схема архитектуры служб WCF Data Services

См. также

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

Службы WCF Data Services
Приступая к работе со службами WCF Data Services

Другие ресурсы

Определение службы WCF Data Services
Accessing a Data Service (WCF Data Services)
Клиентская библиотека служб WCF Data Services
Передача состояния представления (REST)