SteemJ - интеграция steem в java-приложения

in steemj •  7 years ago 

Добрый день. В этом посте я хочу рассказать о библиотеке для работе с 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.

Если вы хотите быть в курсе изменений, или просто вам нравится то, что я делаю, будет здорово, если вы нажмете на кнопку внизу =).

Спасибо за то, что прочитали, с наилучшими пожеланиями

@dez1337


P.S. от переводчика: На мой взгляд, один из основных недостатков данной библиотеки сейчас - это проблемы при работе с форками стима и тестовой сетью - например, названия используемых валют (SBD/STEEM) захардкожены. Однако уже в нынешней разработка движется, и я надеюсь, что в ближайшее время эти проблемы будут устранены - упоминаемое автором движение от обертки над API к полноценному "кошельку" как раз предполагает создание таких "кошельков" для разных типов сетей

Этот пост на golos.io: https://golos.io/steem/@ray66rus/steemj-integraciya-steem-v-java-prilozheniya

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

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

By upvoting this notification, you can help all Steemit users. Learn how here!

Loading...

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:

SteemitBoard Ranking update - Resteem and Resteemed added

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @ray66rus! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

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:

SteemFest⁴ commemorative badge refactored
Vote for @Steemitboard as a witness to get one more award and increased upvotes!