Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What is going on with this article?
@norikokt

IBM Cloud ShellでQuarkusを試してみよう

この記事は、これからQuarkusを始める方を対象に、IBM Cloudで提供しているIBM Cloud Shellを使ってQuarkus.ioのFirstStartの手順を実行するためのガイドです。

Cloud Shellとは

IBM Cloud Shell はクラウドのメニュー(アイコン)からコンソールに即時アクセスが可能です。
2020年10月現在、主に以下の機能をリリースしています。
・50時間利用/週
・ストレージ500 MB/User
・ファイルのアップロード、ダウンロード処理
・アプリのプレビュー
詳細、最新情報はIBM Cloud Docsをご確認ください
image.png

QUARKUS GET STARTED

オリジナルの記事はこちらのQUARKUS - CREATING YOUR FIRST APPLICATIONです。
https://quarkus.io/get-started/
こちらのガイドに習い、IBM Cloud Shellの実行手順に編集しています。
今回、紹介する範囲はQuarkusアプリケーションの起動、修正、実行結果の確認の手順になります。
image.png

IBM Cloud からCloudShellを起動

・IBM CloudにLoginします。
 アカウントをお持ちでない方は、こちらからご登録ください。登録にはe-Mailアドレスが必要です。
 この手順はライトアカウントで実施可能です。(2020年6月時点)
・Cloud Shellを起動します。
image.png
・今回、Cloud Shellで3つのSessionを使用します。Sessionは+ボタンで追加できます。Cloud Shellでは最大5つのSessionまで使用できます。
image.png
-Session1:Quarkus環境構築
-Session2:curlコマンド実行
-Session3:File編集

Step1: サンプルコードの実行

行または$ごとにクリップボードにコピー、Cloud Shellにペーストして進めてください。

1. Gitクローン

git clone https://github.com/quarkusio/quarkus-quickstarts.git

2. ディスクの使用量を確認

df

image.png

3.Maven Projectを作成

mvn io.quarkus:quarkus-maven-plugin:1.13.4.Final:create \
    -DprojectGroupId=org.acme \
    -DprojectArtifactId=getting-started \
    -DclassName="org.acme.getting.started.GreetingResource" \
    -Dpath="/hello"

image.png

4.ディレクトリを移動し、内容を確認

cd quarkus-quickstarts
cd getting-started
ls

image.png

5.ファイルの内容を確認

cat pom.xml
cat src/main/java/org/acme/getting/started/GreetingResource.java

image.png
*pomファイルにはquarkus-maven-plaginなどが設定されています。
image.png
*GreetingResource.javaにはこのようなコードが生成されます。

6.Quarkusを起動

./mvnw compile quarkus:dev:

image.png
起動できました! 続いて、Session2を追加します。

7.cUrlでコードを実行(Session2)

curl -w "\n" http://localhost:8080/hello

*Sessionが切れてしまった場合は、Quarkusを再度起動します。

image.png
戻り値として”Hello”が表示されました! 

ブラウザでも確認してみましょう。
右上の目のアイコンから8080ポートを選択してみましょう。

続いて、Session3を追加します。

Step2: コードの修正

1.ディレクトリの確認と移動(Session3)

cd quarkus-quickstarts
cd getting-started

2.ディレクトリーの移動とファイルのコピー、確認

cd src/main/java/org/acme/getting/started
cp GreetingResource.java GreetingService.java

image.png

3.編集ファイルの確認(表示)

cat GreetingService.java

image.png
↓次で内容を編集します。↓

4.GreetingServiceファイルの編集

エディタをお持ちの方は、IBM Cloud Shell右上の矢印ボタンでファイルのダウンロード/アップロードも可能です。
お手元のエディタで編集して、ファイルを更新していただくこともできます。アップロードファイルはログインアカウント直下のディレクトリに配置されますので、適宜移動してください。

nano GreetingService.java

(編集用ウィンドウが開く)以下の内容に編集(または置換)

package org.acme.getting.started;

import javax.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class GreetingService {

    public String greeting(String name) {
        return "hello " + name;
    }

}

ファイル編集後、Exit → Y → To Files → GreetingService.java → Ent で閉じる
image.png
編集後のファイルを表示して確認

cat GreetingService.java

5.GreetingResourceファイルの編集

同様の手順でGreetingResourceファイルを以下の内容に編集

cat GreetingResource.java
nano GreetingResource.java

(編集用ウィンドウが開く)以下の内容に編集(または置換)

package org.acme.getting.started;

import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.jboss.resteasy.annotations.jaxrs.PathParam;

@Path("/hello")
public class GreetingResource {

    @Inject
    GreetingService service;

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    @Path("/greeting/{name}")
    public String greeting(@PathParam String name) {
        return service.greeting(name);
    }

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String hello() {
        return "hello";
    }
}

ファイル編集後、Exit → Y → To Files → GreetingResource.java → Ent で閉じる
編集後のファイルを表示して確認

cat GreetingResource.java 

6.cUrlでコードを実行(Session2)

curl -w "\n" http://localhost:8080/hello
curl -w "\n" http://localhost:8080/hello/greeting/quarkus
curl -w "\n" http://localhost:8080/hello/greeting/'半角英数任意の文字列(’は不要)'

image.png

それぞれ、ブラウザでも確認してみましょう。
スクリーンショット 2020-10-28 12.21.10.png

IBM Cloud ShellでQuarkusのお試しは以上になります。
最後まで読んでいただきありがとうございました。
おつかれさまでした!

5
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
5
Help us understand the problem. What is going on with this article?