Использование расширения серверного объекта в клиентских приложениях
Можно использовать расширения серверного объекта (SOE) в любом приложении, которое может выполнить HTTP-запрос сервера и обработать ответ. Входные и выходные данные модулей SOE являются простыми типами, такими как числа, текстовые строки и объекты XML и JSON. Приложение, принимающее выходные данные, не должно иметь представлений об объектах ArcObjects.
Часто модуль SOE тестируется в приложении Services Directory (предположительно используется REST SOE), затем пишется код для использования модуля SOE в клиентском приложении.
Проверка SOE в приложении Services Directory
Предоставления простых типов модулям SOE позволяет тестировать модули SOE REST веб-сервиса в приложении Services Directory. После включения модуля SOE в картографическом сервисе или сервисе изображений, перейдите на страницу сервиса в Директории сервисов (Services Directory). В нижней части странице модуль SOE будет отображаться под заголовком Поддерживаемые дополнительные модули (Supported Extensions). (Если модуль не отображается, убедитесь, что администратор ArcGIS Server очистил кэш REST.)
Если щелкнуть SOE в Services Directory, можно будет щелкнуть и изучить предоставляемые ресурсы и операции. Щелкните операцию, после чего отобразятся некоторые поля ввода, которые можно использовать для тестирования запросов и ответов SOE. В ответ должен прийти простой ответ JSON или HTML.
Использование SOE в клиентском приложении
При предоставлении SOE в качестве веб-сервиса REST можно использовать модуль в интерфейсах Esri API для Интернета и мобильной платформы. Независимо от того, какой интерфейс API используется, для работы с веб-сервисом SOE необходимо следующее:
-
Создание запроса из веб-сервиса – включает создание списка параметров и отправки полного URL на сервер
-
Выполнение какого-либо действия с ответом – необходимо понимание формата ответа и способа анализа информации для выполнения нужного действия в приложении
Несмотря на сходство шаблонов кодирования классы, используемые для работы с модулями SOE, различаются в зависимости от интерфейса API.
В интерфейсе ArcGIS API для JavaScript следует задать переменную с помощью JSON, в которой будут хранится все входные параметры для модуля SOE. Затем следует использовать метод esri.request() для вызова веб-сервиса. Ответом является объект JSON.
В интерфейсе ArcGIS API для Flex необходимо развернуть класс BaseTask. Свойство url в BaseTask должно указывать на модуль SOE. Затем можно использовать метод sendURLVariables в BaseTask для запроса веб-сервиса. Ответом является объект Flex, из которого можно получить доступ к различным объектам JSON, возвращаемым в ответе.
С помощью ArcGIS API для Silverlight можно использовать модули SOE, следуя стандартным методам использования Silverlight для выполнения запросов веб-сервисов и работы с ответами JSON. Эти методы подробно изложены в следующих разделах справки Microsoft:
-
Инструкции по выполнению запросов сервисов на основе HTTP (позволяет делать запросы модуля SOE)
-
Работа с данными JSON (позволяет работать с ответами)
-
Содержащиеся в сети комплекты SDK для веб-интерфейсов Esri API предоставляют примеры кода, демонстрирующие приведенные выше шаблоны.