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
Ответить с цитированием
 


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

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

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


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


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