forum.bitel.ru http://forum.bitel.ru/ |
|
[7.0] CustomAPI, JSON RPC и авторизация в кастомном сервисе http://forum.bitel.ru/viewtopic.php?f=19&t=12831 |
Страница 1 из 1 |
Автор: | Phricker [ 14 мар 2018, 17:41 ] |
Заголовок сообщения: | [7.0] CustomAPI, JSON RPC и авторизация в кастомном сервисе |
Доброго времени суток уважаемые разработчики. Собственно наткнулся на то, что 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/ по аналогии с поиском по какому-нибудь модулю или т.п. |
Автор: | Phricker [ 14 мар 2018, 17:44 ] |
Заголовок сообщения: | Re: [7.0] CustomAPI, JSON RPC и авторизация в кастомном серв |
Единственное НО - в таком случае веб сервис должен реализовывать интерфейс. Но это не проблема, и кому это надо и кто хочет этим функционалом воспользоваться - могут написать и интерфейс |
Автор: | Phricker [ 15 мар 2018, 22:24 ] |
Заголовок сообщения: | Re: [7.0] CustomAPI, JSON RPC и авторизация в кастомном серв |
up |
Автор: | Phricker [ 18 мар 2018, 22:11 ] |
Заголовок сообщения: | Re: [7.0] CustomAPI, JSON RPC и авторизация в кастомном серв |
Предпонедельничный АП. Вдруг Димон решит в понедельник с утра поработать. |
Автор: | Ildar [ 22 мар 2018, 13:13 ] |
Заголовок сообщения: | Re: [7.0] CustomAPI, JSON RPC и авторизация в кастомном серв |
Это можно сделать уже сейчас с помощью параметра в конфиге 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": {} } |
Автор: | Phricker [ 23 мар 2018, 00:00 ] |
Заголовок сообщения: | Re: [7.0] CustomAPI, JSON RPC и авторизация в кастомном серв |
Очешуеть. |
Автор: | Arcad77 [ 23 мар 2018, 22:02 ] |
Заголовок сообщения: | Re: [7.0] CustomAPI, JSON RPC и авторизация в кастомном серв |
Наконец-то свои сервисы можно авторизировать |
Автор: | Phricker [ 23 мар 2018, 22:42 ] |
Заголовок сообщения: | Re: [7.0] CustomAPI, JSON RPC и авторизация в кастомном серв |
Arcad77 писал(а): Наконец-то свои сервисы можно авторизировать Так то и раньше можно было. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |