forum.bitel.ru
http://forum.bitel.ru/

Работа по REST из скрипта
http://forum.bitel.ru/viewtopic.php?f=22&t=6144
Страница 1 из 1

Автор:  mikos [ 19 ноя 2011, 17:25 ]
Заголовок сообщения:  Работа по REST из скрипта

Добрый день.
Подскажите пожалуйста, есть ли в BGBS классы для работы по http? Необходимо поработать по REST с другим приложением.

Автор:  Феанор [ 21 ноя 2011, 15:43 ]
Заголовок сообщения:  Re: Работа по REST из скрипта

mikos писал(а):
Добрый день.
Подскажите пожалуйста, есть ли в BGBS классы для работы по http? Необходимо поработать по REST с другим приложением.

http - протокол, rest - архитектурный подход.
Код:
import java.io.*;
import java.net.*;

и использовать URL для открытия соединения... Есть в инете примеры, могу выложить свой пример.
REST - архитектура представления ресурсов и взаимодействия с ними, руководство к действию так сказать. Я для реализация RESTfull вызовов использовал jersey, подгрузив ее сервлетом. Но это опять же инструмент для реализации по правилам - можно их игнорировать, можно следовать.
ps ну у меня сервер отвечает на запросы по рест, а не обращается.. обращается просто хттп запросами

Автор:  mikos [ 21 ноя 2011, 15:51 ]
Заголовок сообщения:  Re: Работа по REST из скрипта

Феанор писал(а):
mikos писал(а):
Добрый день.
Подскажите пожалуйста, есть ли в BGBS классы для работы по http? Необходимо поработать по REST с другим приложением.

http - протокол, rest - архитектурный подход.
Код:
import java.io.*;
import java.net.*;

и использовать URL для открытия соединения... Есть в инете примеры, могу выложить свой пример.
REST - архитектура представления ресурсов и взаимодействия с ними, руководство к действию так сказать. Я для реализация RESTfull вызовов использовал jersey, подгрузив ее сервлетом. Но это опять же инструмент для реализации по правилам - можно их игнорировать, можно следовать.

Если есть примеры работы с REST - был бы благодарен!

Автор:  Феанор [ 21 ноя 2011, 15:54 ]
Заголовок сообщения:  Re: Работа по REST из скрипта

mikos писал(а):
Феанор писал(а):
mikos писал(а):
Добрый день.
Подскажите пожалуйста, есть ли в BGBS классы для работы по http? Необходимо поработать по REST с другим приложением.

http - протокол, rest - архитектурный подход.
Код:
import java.io.*;
import java.net.*;

и использовать URL для открытия соединения... Есть в инете примеры, могу выложить свой пример.
REST - архитектура представления ресурсов и взаимодействия с ними, руководство к действию так сказать. Я для реализация RESTfull вызовов использовал jersey, подгрузив ее сервлетом. Но это опять же инструмент для реализации по правилам - можно их игнорировать, можно следовать.

Если есть примеры работы с REST - был бы благодарен!

а что именно нужно? чтобы к серверу снаружи по хттп можно было обращаться хитро, типа api какогото для другого приложения?

Автор:  mikos [ 21 ноя 2011, 15:56 ]
Заголовок сообщения:  Re: Работа по REST из скрипта

Феанор писал(а):
mikos писал(а):
Если есть примеры работы с REST - был бы благодарен!

а что именно нужно? чтобы к серверу снаружи по хттп можно было обращаться хитро, типа api какогото для другого приложения?

ага

Автор:  Феанор [ 21 ноя 2011, 16:19 ]
Заголовок сообщения:  Re: Работа по REST из скрипта

mikos писал(а):
Феанор писал(а):
mikos писал(а):
Если есть примеры работы с REST - был бы благодарен!

а что именно нужно? чтобы к серверу снаружи по хттп можно было обращаться хитро, типа api какогото для другого приложения?

ага

Ну тогда jersey использовать. http://jersey.java.net/
Скачиваем оттуда нужные библиотеки, кладем их в webroot/WEB-INF/lib
Свои классы пишем, компилируем и кладем их в webroot/WEB-INF/classes
Прописываем в webroot/WEB-INF/web.xml
Код:
<servlet>                                                               
        <servlet-name>Jersey REST Service</servlet-name>                       
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>                                                           
            <param-name>com.sun.jersey.config.property.packages</param-name>   
            <param-value>тут названия кастомных классов, которые подгрузить надо</param-value>               
        </init-param>                                                           
        <load-on-startup>8</load-on-startup>                                   
        </servlet>                                                             
                                                                               
        <servlet-mapping>                                                       
        <servlet-name>Jersey REST Service</servlet-name>                       
        <url-pattern>/api/*</url-pattern>                                       
        </servlet-mapping>           


Ну а дальше - все возможности явы, апи биллинга для формирования данных. У меня используется встроенная реализация сериализации ответов в JSON. Т.е. описываешь свои классы, метод их возвращает в json'e.
Код:
@Path("/crm")
@Produces("application/json; charset=UTF-8")
public class CRM {
   public static final int HD=8;
   Setup setup;
   public CRM() {
      this.setup=Setup.getSetup();
   }
@GET
   public ArrayList<CRMProblem> getProblems(@Context HttpServletRequest req,
         @DefaultValue("-1") @QueryParam("departmentResponsibleId") int departmentResponsibleId,
         @DefaultValue("-1") @QueryParam("urgency") int urgency,
         @DefaultValue("-1") @QueryParam("status") int status,
         @DefaultValue("") @QueryParam("type") String type,
         @DefaultValue("-1") @QueryParam("dateType") int dateType,
         @DefaultValue("2030-01-01") @QueryParam("date2") String date2,
         @DefaultValue("2000-01-01") @QueryParam("date1") String date1,
         @DefaultValue("") @QueryParam("text") String text
         )  throws SQLException,itax.webclient.exceptions.NotFoundException {
      java.sql.Connection con=setup.getDBConnectionFromPool();   
      try{
....куча логики по дерагнию проблем, прикрючиванию к ним информации по договорам и тд...
   }                                                                                                                                 
      finally {   con.close();   }
   }

и получается типа такого ответа:
Код:
{"content":[
{
"id":14,
"dateCreated":"21.11.2011 12:05:25",
"userCreated":"Главный администратор",
"dateModified":"21.11.2011 16:20:17"
....другие поля....
},
{другие значения}
]}

Ну можно еще манипулировать кодами ответов, 200, 404, 403 возвращать, мне это не нужно было, поотому что не совсем рестфул сервис был, но это все есть в библиотеке.

Автор:  mikos [ 21 ноя 2011, 19:55 ]
Заголовок сообщения:  Re: Работа по REST из скрипта

Вот спасибо! Порюхаем...

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/