Пока пропущу один небольшой раздел из серии обзоров SDK и расскажу про REST.
Взаимодействие с Microsoft Dynamics CRM 4.0 на клиентской стороне сводилось к вызову XML Web-сервиса путём формирования в клиентском скрипте SOAP-запроса. Плюсом данной технологии является интероперабельность - возможность использования сервиса независимо от технологий и языков программирования. И это был единственный способ взаимодействия с системой на стороне клиента. Минусов куда как больше:
- сложная структура запроса - формирование объёмного XML-запроса занятие кропотливое,
- трудности парсинга (разбора) ответа, т.к. необходимы знания объектной модели документа (DOM), регулярных выражений и XQuery/XPath для извлечения требуемых данных,
- нетривиальная обработка ошибок.
Для решения возникающих трудностей с вызовом XML Web-сервиса CRM различными командами были предложены обёртки, призванные облегчить эту задачу:
Реализация REST в CRM 2011
В Microsoft Dynamics CRM 2011 данные теперь доступны через конечную точку REST. REST (Representational State Transfer) - архитектурный подход, который подразумевает использование ресурсов через обращение по уникальному URI-пути. А это значит, что теперь достаточно обратиться GET-, POST-, MERGE-, DELETE- или PUT-запросом на определённый URI, чтобы извлечь данные из CRM, обновить, удалить или сохранить запись.
В Microsoft Dynamics CRM 2011 конечная точка REST реализована службой WCF с использованием Open Data Protocol (OData).
OData принимает и возвращает данные в одном из двух форматов: ATOM или JSON (наиболее интересный для нас формат, т.к. позволяет десериализовать ответ службы в объекты JavaScript).
Все запросы производятся к базовому URI:
[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc
О том как лучше всего сформировать этот путь читайте в статье "Xrm.Page.context и функция GetGlobalContext".
Объектная модель данных OData
OData Entity Data Model (EDM) - упорядоченный набор URI со структурой взаимосвязей сущностей CRM доступен через метаданные службы:
[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc/$metadata
Этот XML-документ использует CDSL - язык описания концептульаной схемы данных (аналог WSDL для XML Web-служб). Вы можете использовать этот документ для генерации классов в приложениях Silverlight или описания объектов в JScript.
Ограничения
Служба REST предоставляет альтернативу использования SOAP-запросов, но необходимо учитывать следующие ограничения:
- Доступны только следующие типы запросов: Create, Retrieve, Update и Delete.
- Не могут быть выполнены запросы, которые требуют использования метода Execute.
- Создание и удаление связей между записями осуществляется как обновление (update-запрос).
- Аутентификация возможна только в рамках приложения CRM.
- Протокол OData реализован не полностью. Некоторые системные запросы не будут доступны.
Продолжение в статье Использование REST: запросы и фильтры.
Добавить комментарий