BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 19 мар 2024, 11:03

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: 14 мар 2018, 17:41 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Доброго времени суток уважаемые разработчики.

Собственно наткнулся на то, что web-сервис можно дергать через JSON RPC

И тут стало интересно, не могу ли я таким же образом обратиться к своему веб-сервису, написанному в CustomAPI.

Оказалось, что не могу.
НО
Оказалось, что если переписать класс ru.bitel.bgbilling.kernel.container.ws.server.JsonWsHandler
И добавить в него поиск своего сервиса
Код:
Class<?> implementorClass;
if(moduleKey.service.equals("TestService")){
    implementorClass = findCustomApiEndpointClass(moduleKey);
}
else{
    implementorClass = this.findEndpointClass(moduleKey);
}
if (implementorClass == null) {
    throw new BGException("Не найден сервис: " + moduleKey.module + ":" + moduleKey.service);
}

Код:
private Class<?> findCustomApiEndpointClass(ModuleKey moduleKey) {
        try {
            return DynamicClassManager.getInstance().loadClass("api.ru.ellco.bgbilling.test.impl.TestServiceImpl");
        } catch (BGException e) {
            log.error(e.getMessage(), e);
            return null;
        }
    }



Оказалось, что всё прекрасно вызывается.
Изображение


И даже более того
Оказалось, что в таком случае пашет и встроенная авторизация ;)
Необходимо передавать юзера в строке
Код:
"user" :{ "user" : "login", "pswd" : "password" },

иначе выдает ошибку :)

Возможно вы посодействуете в том, чтобы некоторым людям (мне это пока не нужно, но всё же) - было удобнее.
Возможно появится какой нибудь /json/api/ по аналогии с поиском по какому-нибудь модулю или т.п.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 мар 2018, 17:44 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Единственное НО - в таком случае веб сервис должен реализовывать интерфейс.
Но это не проблема, и кому это надо и кто хочет этим функционалом воспользоваться - могут написать и интерфейс :)

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 мар 2018, 22:24 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
up

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 мар 2018, 22:11 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Предпонедельничный АП.
Вдруг Димон решит в понедельник с утра поработать.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 мар 2018, 13:13 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 05 сен 2012, 18:20
Сообщения: 457
Карма: 27
Это можно сделать уже сейчас с помощью параметра в конфиге dynservice.

Давайте приведу пример:

Допустим, что у вас уже есть customApi класс TestCustomServiceImpl, тогда мы создаем для него интерфейс TestCustomService и реализуем его в TestCustomServiceImpl.

Тогда класс будет таким:

Код:
package api.ru.bitel.bgbilling.impl;

import java.util.ArrayList;
import java.util.List;
import javax.jws.WebService;
import ru.bitel.bgbilling.kernel.container.service.server.AbstractService;

@WebService(targetNamespace="testService")
public class TestCustomServiceImpl extends AbstractService implements TestCustomService
{
   public List<Integer> testMethod()
   {
      List<Integer> list = new ArrayList<Integer>();
      list.add( 1 );
      list.add( 2 );
      list.add( 3 );
      return list;
   }
}


Интерфейс:

Код:
package api.ru.bitel.bgbilling.impl;

import java.util.List;
import javax.jws.WebService;

@WebService
public interface TestCustomService
{
   public List<Integer> testMethod();
}


После чего в конфиге пропишем dynservice для нашего сервиса, таким способом - dynservice:[url путь по желанию]=[путь до класса]

Например в приведенном примере можно так:
dynservice:test1.TestCustomService=api.ru.bitel.bgbilling.impl.TestCustomServiceImpl

Тогда обратиться можно будет так с локальной машины:
Код:
http://127.0.0.1:8081/bgbilling/executer/json/test1/TestCustomService


Ну и в теле json:
Код:
{
    "method": "testMethod",
    "user": {
        "user": "user",
        "pswd": "XXXXX"
    },
    "params": {}
}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 мар 2018, 00:00 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Очешуеть.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 мар 2018, 22:02 
Не в сети
Клиент

Зарегистрирован: 30 авг 2013, 03:37
Сообщения: 183
Карма: 12
Наконец-то свои сервисы можно авторизировать

_________________
BGBilling 7.1.xxxx+BGCRM, update от ВЧЕРА, Ubuntu 17.04 64bit, JAVA 1.8.xxxx


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 мар 2018, 22:42 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Arcad77 писал(а):
Наконец-то свои сервисы можно авторизировать

Так то и раньше можно было.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.049s | 34 Queries | GZIP : On ]