Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Пишем REST API на Vert.x. Часть 1: настройка окружения

Anna | 2.06.2014 | нет комментариев

Привет, харбаюзер. В этой серии статей мы напишем REST API с применением Vert.x. Начнём с простого: установки самого vert.x-а и настройки запуска простого приложения в IDE.

Немножко всеобщей информации о фреймворке

Vert.x — эдакий node.js из мира Java. Отличает его огромный список поддерживаемых языков (на момент написания статьи: Java, JavaScript, CoffeeScript, Groovy, Python, Ruby, Clojure, Scala), а также присутствие механизма запуска блокирующих операций и вероятность применения нескольких потоков, сберегая при этом правило одного рабочего потока.

Огромнее информации о фреймворке:
vertx.io/manual.html — Формальный мануал
habrahabr.ru/post/181686/ — Исключительный обнаруженный мною пост на прогре о фреймворке

Установка фреймворка, настройка IDE и запуск примера плана

Для начала установим сам vert.x, для этого перейдём в раздел downloads на официальном сайте фреймворка. Распаковывем архив, добавляем директорию bin в PATH. Проверяем правильность установки, запуская следующую команду в терминале:

vertx version

И всё. Один из основных тезисов фреймворка — простота конфигурации.

Дальше при помощи apache maven сгенерируем пример плана. Для этого исполним следующую команду в терминале:

mvn archetype:generate -Dfilter=io.vertx:

Выбираем среди обнаруженных archetype-ов(на момент написания статьи их верно не больше одного) io.vertx:vertx-maven-archetype и выбираем последнюю версию. Задаём в терминале следующие параметры грядущего приложения: groupId, artifactId, версию и базовый package. Для примера плана я задал их соответственно: com.example, vertx-example, 1.0.0-SNAPSHOT, com.example. Проверим, что план удачно собирается, для этого исполним следующую команду в терминале:

mvn install

Если вы видите сообщение BUILD SUCCESS, значит всё сделано верно, при этом конструкция плана должна выглядеть приблизительно так:

Настроим запуск плана. Я настраивал в IntelliJ IDEA, но уверяю вас с другими IDE задач быть не должно.

Есть маленькая задача с разрешением зависимостей из пакетов vertx-core, vertx-platform и vertx-hazelcast. В нашем плане теперь scope у них выставлен provided, что обозначает что они будут предоставлены окружением. Впрочем запускать наше приложение в IDE, которая не предоставляет этих пакетов, следственно сотворим два maven профиля: один для запуска в IDE, иной для сборки приложения, которое будет запускаться непринужденно на vert.x, тот, что несёт в себе надобные зависимости. Для этого добавим дальнейший текст в наш pom.xml:

    <profiles>
        <profile>
            <id>local</id>
            <properties>
                <vertx-scope>compile</vertx-scope>
            </properties>
        </profile>
        <profile>
            <id>deployment</id>
            <properties>
                <vertx-scope>provided</vertx-scope>
            </properties>
        </profile>
    </profiles>

И изменим scope для пакетов vertx:

        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-core</artifactId>
            <version>${vertx.version}</version>
            <scope>${vertx-scope}</scope>
        </dependency>
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-platform</artifactId>
            <version>${vertx.version}</version>
            <scope>${vertx-scope}</scope>
        </dependency>
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-hazelcast</artifactId>
            <version>${vertx.version}</version>
            <scope>${vertx-scope}</scope>
        </dependency>

Для того Дабы запускать план одним кликом сделаем следующую конфигурацию запуска:

По сути мы запускаем программу с org.vertx.java.platform.impl.cli.Starter в качестве входной точки и доводами runmod com.example~vertx-example~1.0-SNAPSHOT. Довод указывает на то, какой модуль запускать. Логика именования дальнейшая: groupId~artifactId~version.

Сейчас дозволено запускать наше приложение, если при запуске итог в консоль схож на дальнейший, значит всё сделано верно:

Apr 08, 2014 5:47:39 PM org.vertx.java.core.logging.impl.JULLogDelegate info
INFO: PingVerticle started
Apr 08, 2014 5:47:39 PM org.vertx.java.core.logging.impl.JULLogDelegate info
INFO: Succeeded in deploying module

Благодарствую за внимание. В дальнейший раз мы разберём, что к чему в этом плане и начнём писать собственное приложение.

Начальный код получившегося плана доступен на GitHub: github.com/X3H4/vertx-example

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB