SteemJ - интеграция steem в java-приложения
Добрый день. В этом посте я хочу рассказать о библиотеке для работе с Steem API для Java.
В то время, как для python и javascript есть официальные библиотеки, с другими языками программирования все обстоит сильно хуже. Однако разработка движется, и недавно вышла новая версия библиотеки для Java. Ниже я выкладываю сокращенный (я убрал чейнджлог - интересующиеся могут посмотреть его в оригинале) и немного переработанный (я перенес общую информацию вверх, а информацию о собственно изменениях в новом релизе - вниз) перевод статьи о новых фичах версии 0.4.0 которая, на мой взгляд, уже очень близка к production-состоянию. Оригинал статьи здесь. Автор поста (и библиотеки) - dez1337.
Выпущен SteemJ версии 0.4.0 - Интегрируйте Steem в ваш проект на Java
После изменения 30000 строк в 345 файлах, на что у меня ушло все свободное время за последние два месяца, я наконец могу поделиться с вами версией 0.4.0 библиотеки SteemJ.
Общая информация
Что такое SteemJ?
SteemJ - это проект, который позволяет вам осуществлять коммуникацию с нодой Steem, используя Java. На данный момент, проект поддерживает большинство вызовов API и опубликование (broadcast) большинства типов операций. Более подробная информация есть на гитхабе:
https://github.com/marvin-we/steem-java-api-wrapperКак мне добавить его в свой проект?
Бинарники SteemJ добавлены в центральный репозиторий Maven и могут быть интегрированы с помощью инструментов управления сборкой проекта - например, собственно Maven. В Вики есть масса примеров для большинства общеиспользуемых инструментов управления сборкой. Если вы не используете в работе такие инструменты - вы можете просто скачать бинарники, как это описано здесь
Поучавствовать в проекте
Проект становится довольно большим, а работы еще много. Если вы хотите поддержать проект - просто склонируйте репозитарий и сделайте пулл-реквест. Я буду очень благодарен вам, если вы сделаете это =).
git clone https://github.com/marvin-we/steem-java-api-wrapper.git
Вышел SteemJ V0.4.0
Приветствую, Стимиане!
Я рад поделить с вами новой версией SteemJ, подготовка которой не оставляла мне свободного времени в последние 10 недель и которая представляет собой по-настоящему значимый майлстоун на пути превращения в полнофункциональный Steem Wallet из простой обертки вокруг существующего Steem API. Для достижения этой цели было изменено в общей сложности около 30000 строк кода в 475 файлах.
Для меня это действительно важный майлстоун. Когда я общался с некоторыми пользователями на GitHub в комментариях и задачах (Issues), я уже упоминал, что данный проект содержит значительные ошибки в дизайне. Причина этого в том, что я просто-напросто не был в курсе всех хитрых особенностей блокчайна Steem, когда я начинал этот проект.
В течении первых недель разработки у меня была масса моментов, когда я говорил себе "что за ерунда!" и думал, что я могу многое упростить в своей библиотеке. Истина же заключалась в том,что для каждого "слишком сложного" варианта реализации какой-либо функции в исходном коде Steem существует своя причина, о которой я просто не был осведомлен в тот момент.
Так что самое большое и важное изменение в этом релизе - это корректировка архитектуры SteemJ с целью более полного соответствия оригинальной реализации Steem
Кроме общего изменения архитектуры я также завершил переименование библиотеки из “steem-api-wrapper” в “steemj”.
Исходник – https://ahrefs.comЭто изменение привело к тому, что к Java-проекту теперь необходимо добавлять следующую зависимость:
<dependency>
<groupId>eu.bittrade.libs</groupId>
<artifactId>steemj-core</artifactId>
<version>0.4.0</version>
</dependency>
Другие варианты добавления SteemJ в ваш проект описаны в официальной wiki.
Другая проблема, на которую часто жаловались пользватели, это устаревший код в примере, приложенном к библиотеке. Чтобы решить эту проблемы, SteemJ был преобразован в многомодульны проект и состоит сейчас из проектов steemj-core (собственно, библиотека) и steemj-sample (приложение-пример).
Благодаря этому изменению, я получил возможность видеть проблемы в процессе компиляции библиотеки и, как пользователь, могуть быть уверен в работоспособности примера с гитхаба
Полный чейнджлог
Можно посмотреть в оригинальном посте
Свяжитесь со мной!
Большинство моих проектов отнимают довольно много времени и я всегда стараюсь сделать что-нибудь полезное для комьюнити. Ваши отзывы и поддержка - то, что позволяет мне продолжать эту работу. Поэтому я буду очень рад, если вы поделитесь со мной своими мыслями по поводу проекта <3. Просто свяжитесь со мной на Steemit или напишите мне на GitHub.
Если вы хотите быть в курсе изменений, или просто вам нравится то, что я делаю, будет здорово, если вы нажмете на кнопку внизу =).
Спасибо за то, что прочитали, с наилучшими пожеланиями
P.S. от переводчика: На мой взгляд, один из основных недостатков данной библиотеки сейчас - это проблемы при работе с форками стима и тестовой сетью - например, названия используемых валют (SBD/STEEM) захардкожены. Однако уже в нынешней разработка движется, и я надеюсь, что в ближайшее время эти проблемы будут устранены - упоминаемое автором движение от обертки над API к полноценному "кошельку" как раз предполагает создание таких "кошельков" для разных типов сетей
Этот пост на golos.io: https://golos.io/steem/@ray66rus/steemj-integraciya-steem-v-java-prilozheniya
Thank you very much for translating my post 😊🤗
Congratulations @ray66rus! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
You published your First Post
You got a First Vote
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
Congratulations @ray66rus! You have received a personal award!
1 Year on Steemit
Click on the badge to view your Board of Honor.
Do not miss the last post from @steemitboard:
Congratulations @ray66rus! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!