(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【SpringBoot】URLにパラメータを渡して処理させる

スポンサーリンク

はじめに

以下記事で利用したサンプルは特定のURLを叩くと特定のメッセージを返すものでした。

今回はパラメータに数字を入れた場合にその数値を画面に表示させてみます。
環境も同一とし、Libertyに配置する使い方とします。

環境情報
  • Windows 10
  • DockerDesktop
  • Eclipse(STS)

パラメータを受け付けるソースコード

コードは以下です。

package com.example.demo;

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping
public class Hello {

    @RequestMapping("/{num}")
    private String hellonum(@PathVariable int num) {
        return "HelloWorld Num:"+num;
    }
}

要はhelloと記載していた箇所を{num}としています。
そしてクラスの引数に@PathVariableとしてint型を渡すとしてプログラム内で処理します。

war化及びデプロイ

mavenを利用してパッケージ化します。

[INFO] --- maven-war-plugin:3.2.3:war (default-war) @ demo ---
[INFO] Packaging webapp
[INFO] Assembling webapp [demo] in [C:\Users\XX\eclipse-workspace\demo\target\demo-0.0.1-SNAPSHOT]
[INFO] Processing war project
[INFO] Webapp assembled in [510 msecs]
[INFO] Building war: C:\Users\XX\eclipse-workspace\demo\target\demo-0.0.1-SNAPSHOT.war
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
...

上記のwarをデプロイします。

> docker run -d -p 80:9080 -v C:\Users\XX\eclipse-workspace\demo\target\demo-0.0.1-SNAPSHOT.war:/config/dropins/app.war websphere-liberty

動作確認

Cygwin上にてcurlコマンドを利用して確認しました。

$ curl http://localhost/app/1
HelloWorld Num:1
$ curl http://localhost/app/2
HelloWorld Num:2
$ curl http://localhost/app/3
HelloWorld Num:3
$ curl http://localhost/app/11111111111
Error 400:

動的に値を返してくれます。ちなみに整数型ということで大きすぎる数はNGのようです。

終わりに

インタラクティブな処理を行う上でリクエストをパラメータ化したいケースはあると思います。
サンプルファイルに少し手を入れるだけで実現できる処理なので、ぜひ試してみてください。

以上、ご参考になれば幸いです。