Регистрация  |  Вход

WEB-сервисы: первые шаги

Приветствую всех участников форума.

WEB-сервисы — это, пожалуй, одна из самых сложных, но в тоже время интересных и важных тем для изучения.

Хочу написать пару учебных классов, обращающихся к сторонним сервисам.

Как я понял, обращение к стороннему WEB-сервису может происходить:

1. На клиенте, т. е. в браузере посредстовм JS. Такой случай описан в книжке FORCE.COM Fundamentals (http://www.salesforce.com/us/developer/docs/fundamentals/index.htm) в разделе 'Implementing the Candidate Map', там происходит оборащение к maps yahoo сервису.

2. На сервере, в момент работы контроллера, триггера. Такой случай подробно описан Дмитрием в двух статьях в блоге, и сейчас хочу попробовать именно такой метод. Кстати, пример разбора XML-файла методами XmlStreamReader, а не DOM методами — неожиданный ход, и может быть будет полезным, в случае если нет уверенности в структуре получаемого XML ответа.

Сейчас хочу написать и попробовать пару APEX классов.
Нет ли у вас на примете какого-нибудь WEB-сервиса, который можно использовать для этого?

Или еще лучше: а можно ли создать какой-нибудь простенький WEB-сервис в своем DE SF и использовать его? (кажется нашел ответ на этот вопрос в Apex Workbook раздел Tutorial #16: Apex REST...)

Спасибо

Приветствую всех участников форума. 

WEB-сервисы — это, пожалуй, одна из самых сложных, но в тоже время интересных и важных тем для изучения.

Хочу  написать пару учебных классов, обращающихся к сторонним сервисам.

Как я понял, обращение к  стороннему WEB-сервису может происходить:

1. На клиенте, т. е. в браузере посредстовм JS. Такой случай описан в книжке [b]FORCE.COM Fundamentals  [/b]([url]http://www.salesforce.com/us/developer/docs/fundamentals/index.htm[/url]) в разделе 'Implementing the Candidate Map', там происходит оборащение к maps yahoo сервису.

2. На сервере, в момент работы контроллера, триггера. Такой случай подробно описан Дмитрием в двух статьях в блоге, и сейчас хочу попробовать именно такой метод. Кстати, пример разбора XML-файла методами XmlStreamReader, а не DOM методами — неожиданный ход, и может быть будет полезным, в случае если нет уверенности в структуре получаемого XML ответа.

Сейчас хочу написать и попробовать пару APEX классов.
Нет ли у вас на примете какого-нибудь WEB-сервиса, который можно использовать для этого?

Или еще лучше: а можно ли создать какой-нибудь простенький WEB-сервис в своем DE SF и использовать его? (кажется нашел ответ на этот вопрос в Apex Workbook раздел Tutorial #16: Apex REST...)

Спасибо

Den Brown
1. На клиенте, т. е. в браузере посредстовм JS. Такой случай описан в книжке FORCE.COM Fundamentals (http://www.salesforce.com/us/developer/ ... /index.htm) в разделе 'Implementing the Candidate Map', там происходит оборащение к maps yahoo сервису.

На клиенте или на сервере принципиальной разницы нет, все зависит от задачи. Смотря где тебе нужны данные там и делай обращение к web service. На клиенте делать вызов предпочтительно, потому что нагрузка ложится на сам клиент, у Salesforce голова болеть не будет. Но клиент не подойдет, если обращение подразумевает передачу закрытых данных и тем более логинов и паролей. Как пример клиентского вызова - это получение всякого рода карт, общедоступных данных типо погода, курсы валют, подгрузка картинок из открытых источников. Все остальное делай на стороне сервера.

Den Brown
Кстати, пример разбора XML-файла методами XmlStreamReader, а не DOM методами — неожиданный ход, и может быть будет полезным, в случае если нет уверенности в структуре получаемого XML ответа.

Подход неожиданные и маловероятный. Смысл веб-сервисов (API) в том, что они ВСЕГДА возвращают структурированные данные. Если структура пришла не та, то последовательная обработка мало чем поможет - это будет означать только одно, что либо вернулась ошибка, либо API изменилось и надо переделывать обработчик.

[quote="Den Brown"]1. На клиенте, т. е. в браузере посредстовм JS. Такой случай описан в книжке FORCE.COM Fundamentals ([url]http://www.salesforce.com/us/developer/[/url] ... /index.htm) в разделе 'Implementing the Candidate Map', там происходит оборащение к maps yahoo сервису.[/quote]

На клиенте или на сервере принципиальной разницы нет, все зависит от задачи. Смотря где тебе нужны данные там и делай обращение к  web service. На клиенте делать вызов предпочтительно, потому что нагрузка ложится на сам клиент, у Salesforce голова болеть не будет. Но клиент не подойдет, если обращение подразумевает передачу закрытых данных и тем более логинов и паролей. Как пример клиентского вызова - это получение всякого рода карт, общедоступных данных типо погода, курсы валют, подгрузка картинок из открытых источников. Все остальное делай на стороне сервера.

[quote="Den Brown"]Кстати, пример разбора XML-файла методами XmlStreamReader, а не DOM методами — неожиданный ход, и может быть будет полезным, в случае если нет уверенности в структуре получаемого XML ответа.[/quote]

Подход неожиданные и маловероятный. Смысл веб-сервисов (API) в том, что они ВСЕГДА возвращают структурированные данные. Если структура пришла не та, то последовательная обработка мало чем поможет - это будет означать только одно, что либо вернулась ошибка, либо API изменилось и надо переделывать обработчик.

Den Brown
Сейчас хочу написать и попробовать пару APEX классов.
Нет ли у вас на примете какого-нибудь WEB-сервиса, который можно использовать для этого?

Лучше сразу найди какой-нибудь популярный сервис и экспериментируй с ним. И с веб-сервисами разберешься и получишь скилы по конктретному сервису. Можешь посмотреть в сторону Google API, LinkedIn API, Twitter API, Facebook API. Да их куча вокруг. Посмотри на моем jobTracker какие задачи на Odesk ставятся по интеграции, может найдешь какую-нибудь интересную тему.

[quote="Den Brown"]Сейчас хочу написать и попробовать пару APEX классов.
Нет ли у вас на примете какого-нибудь WEB-сервиса, который можно использовать для этого?[/quote]

Лучше сразу найди какой-нибудь популярный сервис и экспериментируй с ним. И с веб-сервисами разберешься и получишь скилы по конктретному сервису. Можешь посмотреть в сторону Google API, LinkedIn API, Twitter API, Facebook API. Да их куча вокруг. Посмотри на моем jobTracker какие задачи на Odesk ставятся по интеграции, может найдешь какую-нибудь интересную тему.

Спасибо за обстоятельные ответы.

Dmitry Shnyrev
Лучше сразу найди какой-нибудь популярный сервис и экспериментируй с ним.

Да, пойду этим путем. Возьму Google, и посмотрю какие сервисы можно попробовать как на фронт-энд, так и на сервере.

Спасибо за обстоятельные ответы.

[quote="Dmitry Shnyrev"]Лучше сразу найди какой-нибудь популярный сервис и экспериментируй с ним.[/quote]

Да, пойду этим путем. Возьму Google, и посмотрю какие сервисы можно попробовать как на фронт-энд, так и на сервере.

Попробовал Google Maps API - пожалуй самый востребованный сторонний сервис. Результаты в новой теме "Интеграция с Google Maps API".

Попробовал Google Maps API - пожалуй самый востребованный сторонний сервис. Результаты в новой теме "Интеграция с Google Maps API".