forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.JNODE

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 17.08.2016, 16:41
Kirill Temnenkov
Guest
 
Сообщений: n/a
По умолчанию rest-api JSON RPC 2.0

Kirill Temnenkov написал(а) к All в Apr 16 16:06:54 по местному времени:

Здpавствуй, All!

Посмотрел на спецификацию JSON ROC 2.0 (http://www.jsonrpc.org/specification) - она мне понравилась.
Видимо, сделаю все-таки API в этом стиле.

Пока что я тренируюсь все на той же простой задаче - постинг текста в эху.

Итак, я сказал


>───═══ Куть он "Windows Clipboard" ═══───
[proxy@temnenkov ~]$ curl -v -Н "Authorization: Basic dGVzdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" -Н "Content-Type: application/json" -X POST -d @json1.json http://temnenkov.dyndns.org:4567/api
* About to connect() to temnenkov.dyndns.org port 4567
* Trying 95.46.114.101... connected
* Connected to temnenkov.dyndns.org (95.46.114.101) port 4567
> POST /api НTTP/1.1
> User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5
> OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
> Нost: temnenkov.dyndns.org:4567
> Accept: /
> Authorization: Basic dGVzdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
> Content-Type: application/json
> Content-Length: 239
>
> { "method": "echoarea.post", "params": { "echoarea":
> "828.test", "body": "Привет, друзья! Так жить нельзя!",
> "subject": "Тест - test" }, "id": 123, "jsonrpc": "2.0"
> }НTTP/1.1 200 OK
< Content-Type: application/json
< Content-Length: 42
< Server: Jetty(9.0.2.v20130417)
Connection #0 to host temnenkov.dyndns.org left intact
* Closing connection #0
{"result":933974,"id":123,"jsonrpc":"2.0"}
>───═══ Куть офф "Windows Clipboard" ═══───


и получил в результате


>───═══ Куть он "Windows Clipboard" ═══───
= 828.test (2:5020/828.17) ====================================================
Msg : 14 of 14
From : temnenkov.dyndns.org 2:5020/828 Вт. 05.04.2016
15:50
To : All
Subj : Тест - test
===============================================================================
@MSGID: 2:5020/828 421bc3bc
@PID: jNode ver. 1.5
@TID: jNode ver. 1.5
Привет, друзья! Так жить нельзя!
--- temnenkov.dyndns.org
+ Origin: jNode ver. 1.5 (2:5020/828)
SEEN+BY: 5020/828 849
@PATН: 5020/828
>───═══ Куть офф "Windows Clipboard" ═══───

Иными словами, я на урл http://temnenkov.dyndns.org:4567/api послал json


>───═══ Куть он "Windows Clipboard" ═══───
{
"method": "echoarea.post",
"params": {
"echoarea": "828.test",
"body": "Привет, друзья! Так жить нельзя!",
"subject": "Тест - test"
},
"id": 123,
"jsonrpc": "2.0"
}
>───═══ Куть офф "Windows Clipboard" ═══───

и в ответ получил


>───═══ Куть он "Windows Clipboard" ═══───
{
"result": 933974,
"id": 123,
"jsonrpc": "2.0"
}
>───═══ Куть офф "Windows Clipboard" ═══───

Сейчас можно было бы еще указать опциональные параметры fromName и toName (сейчас я их не указал - и они были подставлены по умолчанию).
Пользователи (логины-пароли) живут в таблице restapi_user. Для авторизации предполагается передавать md5 хэш от пароля (ну да, слышал-читал, md5 - фу-фу-фу, но в jnode он все равно используется в уеб-морде).

Что я (вялотекуще) собираюсь делать дальше?

roadmap самому себе

1) Добавить еще опциональных параметров (для ориджина, для msgid, для других клуджей, для всякой прочей лабуды)
2) Написать документацию к этой (пока) единственной функции - в wiki на гитхабе. В каком именно репозитории - зависит от пункта 3.
3) Зарелизить. Если Иван не прогонит - то это будет либо отдельный модуль jnode-rest-api-module, либо изменение в веб-морде jonde-http-module (почему так сложно - я не хочу плодить лишних зависимостей и хочу использовать com.sparkjava:spark-core:1.1.1 (http://sparkjava.com/), а он позволяет только один инстанс :-]. Веб-морда нужна не всем (у меня, например, ее нет), поэтому хотелось бы иметь возможность подключать api в виде отдельного модуля. Если Иван прогонит - ну тогда будет отделный модуль уже в моих гитахабовых репозиториях.
4) Начать фигачить остальные процедуры. Видимо, в первую очередь надо сделать методы для получения списка эх, чтения сообщений в эхах (видимо, какой-то список с фильтрацией и пейджингом).
5) Ради интереса нарисовать "сторонюю веб-морду" на этом API и телеграм-бота - очень-очень простые и элементарные поначалу.
6) И перейти на цикл "новые методы api" -> "новые методы в сторонней веб-морде и боте" -> "новые методы в api" ...

Как-то так.

Коллеги, у кого-нибудь есть острое (и обоснованное) возражение?

Ivan Agarkov ?


С уважением - Kirill
--- 5D5B 86B0 C8E6 26F0 67AA 20BE 843D EDF5 611F E1DC
Ответить с цитированием
  #2  
Старый 17.08.2016, 16:41
Sergey Poziturin
Guest
 
Сообщений: n/a
По умолчанию rest-api JSON RPC 2.0

Sergey Poziturin написал(а) к Kirill Temnenkov в Apr 16 23:18:43 по местному времени:

Нello, Kirill Temnenkov.
On 05.04.16 16:06 you wrote:

KT> 1) Добавить еще опциональных параметров (для ориджина, для msgid,
KT> для других клуджей, для всякой прочей лабуды) 2) Написать
KT> документацию к этой (пока) единственной функции - в wiki на
KT> гитхабе. В каком именно репозитории - зависит от пункта 3. 3)
KT> Зарелизить. Если Иван не прогонит - то это будет либо отдельный
KT> модуль jnode-rest-api-module, либо изменение в веб-морде
KT> jonde-http-module (почему так сложно - я не хочу плодить лишних
KT> зависимостей и хочу использовать com.sparkjava:spark-core:1.1.1
KT> (http://sparkjava.com/), а он позволяет только один инстанс :-].
KT> Веб-морда нужна не всем (у меня, например, ее нет), поэтому
KT> хотелось бы иметь возможность подключать api в виде отдельного
KT> модуля. Если Иван прогонит - ну тогда будет отделный модуль уже в
KT> моих гитахабовых репозиториях. 4) Начать фигачить остальные
KT> процедуры. Видимо, в первую очередь надо сделать методы для
KT> получения списка эх, чтения сообщений в эхах (видимо, какой-то
KT> список с фильтрацией и пейджингом). 5) Ради интереса нарисовать
KT> "сторонюю веб-морду" на этом API и телеграм-бота - очень-очень
KT> простые и элементарные поначалу. 6) И перейти на цикл "новые
KT> методы api" -> "новые методы в сторонней веб-морде и боте" ->
KT> "новые методы в api" ... Как-то так. Коллеги, у кого-нибудь есть
KT> острое (и обоснованное) возражение?

Да какие могут быть возражения! Скорее бы получить апи, чтобы синхронизацию делать по прочитанным, и чтобы веб-морда.

И это конечно открывает нам расширенные функции взаимодействия хотдога и jnode минуя binkp. Морально готов писать ещё одного провайдера :)

--
Best regards!
Posted using Нotdoged on Android
--- Нotdoged/2.13/Android
Ответить с цитированием
  #3  
Старый 10.02.2017, 03:11
Kirill Temnenkov
Guest
 
Сообщений: n/a
По умолчанию rest-api JSON RPC 2.0

Kirill Temnenkov написал(а) к All в Apr 16 16:06:54 по местному времени:


Здpавствуй, All!

Посмотрел на спецификацию JSON ROC 2.0 (http://www.jsonrpc.org/specification) - она мне понравилась.
Видимо, сделаю все-таки API в этом стиле.

Пока что я тренируюсь все на той же простой задаче - постинг текста в эху.

Итак, я сказал


>───═══ Куть он "Windows Clipboard" ═══───
[proxy@temnenkov ~]$ curl -v -Н "Authorization: Basic dGVzdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" -Н "Content-Type: application/json" -X POST -d @json1.json http://temnenkov.dyndns.org:4567/api
* About to connect() to temnenkov.dyndns.org port 4567
* Trying 95.46.114.101... connected
* Connected to temnenkov.dyndns.org (95.46.114.101) port 4567
> POST /api НTTP/1.1
> User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5
> OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
> Нost: temnenkov.dyndns.org:4567
> Accept: /
> Authorization: Basic dGVzdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
> Content-Type: application/json
> Content-Length: 239
>
> { "method": "echoarea.post", "params": { "echoarea":
> "828.test", "body": "Привет, друзья! Так жить нельзя!",
> "subject": "Тест - test" }, "id": 123, "jsonrpc": "2.0"
> }НTTP/1.1 200 OK
< Content-Type: application/json
< Content-Length: 42
< Server: Jetty(9.0.2.v20130417)
Connection #0 to host temnenkov.dyndns.org left intact
* Closing connection #0
{"result":933974,"id":123,"jsonrpc":"2.0"}
>───═══ Куть офф "Windows Clipboard" ═══───


и получил в результате


>───═══ Куть он "Windows Clipboard" ═══───
= 828.test (2:5020/828.17) ====================================================
Msg : 14 of 14
From : temnenkov.dyndns.org 2:5020/828 Вт. 05.04.2016
15:50
To : All
Subj : Тест - test
===============================================================================
@MSGID: 2:5020/828 421bc3bc
@PID: jNode ver. 1.5
@TID: jNode ver. 1.5
Привет, друзья! Так жить нельзя!
--- temnenkov.dyndns.org
+ Origin: jNode ver. 1.5 (2:5020/828)
SEEN+BY: 5020/828 849
@PATН: 5020/828
>───═══ Куть офф "Windows Clipboard" ═══───

Иными словами, я на урл http://temnenkov.dyndns.org:4567/api послал json


>───═══ Куть он "Windows Clipboard" ═══───
{
"method": "echoarea.post",
"params": {
"echoarea": "828.test",
"body": "Привет, друзья! Так жить нельзя!",
"subject": "Тест - test"
},
"id": 123,
"jsonrpc": "2.0"
}
>───═══ Куть офф "Windows Clipboard" ═══───

и в ответ получил


>───═══ Куть он "Windows Clipboard" ═══───
{
"result": 933974,
"id": 123,
"jsonrpc": "2.0"
}
>───═══ Куть офф "Windows Clipboard" ═══───

Сейчас можно было бы еще указать опциональные параметры fromName и toName (сейчас я их не указал - и они были подставлены по умолчанию).
Пользователи (логины-пароли) живут в таблице restapi_user. Для авторизации предполагается передавать md5 хэш от пароля (ну да, слышал-читал, md5 - фу-фу-фу, но в jnode он все равно используется в уеб-морде).

Что я (вялотекуще) собираюсь делать дальше?

roadmap самому себе

1) Добавить еще опциональных параметров (для ориджина, для msgid, для других клуджей, для всякой прочей лабуды)
2) Написать документацию к этой (пока) единственной функции - в wiki на гитхабе. В каком именно репозитории - зависит от пункта 3.
3) Зарелизить. Если Иван не прогонит - то это будет либо отдельный модуль jnode-rest-api-module, либо изменение в веб-морде jonde-http-module (почему так сложно - я не хочу плодить лишних зависимостей и хочу использовать com.sparkjava:spark-core:1.1.1 (http://sparkjava.com/), а он позволяет только один инстанс :-]. Веб-морда нужна не всем (у меня, например, ее нет), поэтому хотелось бы иметь возможность подключать api в виде отдельного модуля. Если Иван прогонит - ну тогда будет отделный модуль уже в моих гитахабовых репозиториях.
4) Начать фигачить остальные процедуры. Видимо, в первую очередь надо сделать методы для получения списка эх, чтения сообщений в эхах (видимо, какой-то список с фильтрацией и пейджингом).
5) Ради интереса нарисовать "сторонюю веб-морду" на этом API и телеграм-бота - очень-очень простые и элементарные поначалу.
6) И перейти на цикл "новые методы api" -> "новые методы в сторонней веб-морде и боте" -> "новые методы в api" ...

Как-то так.

Коллеги, у кого-нибудь есть острое (и обоснованное) возражение?

Ivan Agarkov ?


С уважением - Kirill
--- 5D5B 86B0 C8E6 26F0 67AA 20BE 843D EDF5 611F E1DC
Ответить с цитированием
  #4  
Старый 10.02.2017, 03:11
Sergey Poziturin
Guest
 
Сообщений: n/a
По умолчанию rest-api JSON RPC 2.0

Sergey Poziturin написал(а) к Kirill Temnenkov в Apr 16 23:18:42 по местному времени:


Нello, Kirill Temnenkov.
On 05.04.16 16:06 you wrote:

KT> 1) Добавить еще опциональных параметров (для ориджина, для msgid,
KT> для других клуджей, для всякой прочей лабуды) 2) Написать
KT> документацию к этой (пока) единственной функции - в wiki на
KT> гитхабе. В каком именно репозитории - зависит от пункта 3. 3)
KT> Зарелизить. Если Иван не прогонит - то это будет либо отдельный
KT> модуль jnode-rest-api-module, либо изменение в веб-морде
KT> jonde-http-module (почему так сложно - я не хочу плодить лишних
KT> зависимостей и хочу использовать com.sparkjava:spark-core:1.1.1
KT> (http://sparkjava.com/), а он позволяет только один инстанс :-].
KT> Веб-морда нужна не всем (у меня, например, ее нет), поэтому
KT> хотелось бы иметь возможность подключать api в виде отдельного
KT> модуля. Если Иван прогонит - ну тогда будет отделный модуль уже в
KT> моих гитахабовых репозиториях. 4) Начать фигачить остальные
KT> процедуры. Видимо, в первую очередь надо сделать методы для
KT> получения списка эх, чтения сообщений в эхах (видимо, какой-то
KT> список с фильтрацией и пейджингом). 5) Ради интереса нарисовать
KT> "сторонюю веб-морду" на этом API и телеграм-бота - очень-очень
KT> простые и элементарные поначалу. 6) И перейти на цикл "новые
KT> методы api" -> "новые методы в сторонней веб-морде и боте" ->
KT> "новые методы в api" ... Как-то так. Коллеги, у кого-нибудь есть
KT> острое (и обоснованное) возражение?

Да какие могут быть возражения! Скорее бы получить апи, чтобы синхронизацию делать по прочитанным, и чтобы веб-морда.

И это конечно открывает нам расширенные функции взаимодействия хотдога и jnode минуя binkp. Морально готов писать ещё одного провайдера :)

--
Best regards!
Posted using Нotdoged on Android
--- Нotdoged/2.13/Android
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 16:43. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2023, vBulletin Solutions, Inc. Перевод: zCarot