Добрый день. В этом посте я хочу рассказать о библиотеке для работе с Steem API для Java.
В то время, как для python и javascript есть официальные библиотеки, с другими языками программирования все обстоит сильно хуже. Однако разработка движется, и недавно вышла новая версия библиотеки для Java. Ниже я выкладываю сокращенный (я убрал чейнджлог - интересующиеся могут посмотреть его в оригинале) и немного переработанный (я перенес общую информацию вверх, а информацию о собственно изменениях в новом релизе - вниз) перевод статьи о новых фичах версии 0.4.0 которая, на мой взгляд, уже очень близка к production-состоянию. Оригинал статьи здесь. Автор поста (и библиотеки) - dez1337.
Выпущен SteemJ версии 0.4.0 - Интегрируйте Steem в ваш проект на Java
После изменения 30000 строк в 345 файлах, на что у меня ушло все свободное время за последние два месяца, я наконец могу поделиться с вами версией 0.4.0 библиотеки SteemJ.
Предыдущий релиз: 0.3.4
Общая информация
Что такое 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