- Java 8
- Eclipse Version: 2020-09
- Windows 10
久しぶりにSpringでのお仕事でした。
Springにて、APIをひとつ作成するというもの。
備忘のために、ひな形作成までをまとめます。
ちなみに、Spring Boot は初めてでした。
仕様
Jsonでポストされたデータを受け取り、いろいろやってJsonデータを返します。
開発環境
-
Pleiades All in One Eclipse を選択
https://mergedoc.osdn.jp/#pleiades.html からダウンロード
Eclipse 2020 > Windows 64bit > Java Full Edition を選択 -
7-Zipが必要らしいので、それもダウンロード・インストール
https://sevenzip.osdn.jp/
プロジェクト作成
- 「ファイル > 新規 > プロジェクト」で新規プロジェクトウィザーとを開く
Spring Boot > Spring スターター・プロジェクトを選択
- Javaバージョンは8に
- 依存関係では、
Web->Spring Webを選択 - 完了
実装:データ定義
- 入力データ、出力データを定義したクラス(InputData, OutputData)を作成
InputData
package jp.co.sankosc.sample;
public class InputData {
public int id;
public String value;
}
OutputData
package jp.co.sankosc.sample;
import java.util.Date;
public class OutputData {
public int id;
public String value;
public Date date;
}
実装:処理
- ApiControllerクラスを作成
- クラスに@RestControllerアノテーションを定義
- メソッド定義(今回はpostというメソッド)
- メソッドに@RequestMappingアノテーションでuriを定義
- 入力パラメータを@RequestBodyアノテーションで定義
ApiController
package jp.co.sankosc.sample;
import java.util.Date;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ApiController {
@RequestMapping(value="/post", method=RequestMethod.POST)
public OutputData post(@RequestBody InputData input) {
OutputData output = new OutputData();
output.id = input.id;
output.value = input.value;
output.date = new Date();
return output;
}
}
実行
- プロジェクトを選択して
- 実行 > 実行 > Spring Bootアプリケーション
確認
確認コマンド
$postData = @{id=123;value="InputData.Value"} | ConvertTo-Json -Compress
Invoke-WebRequest -Method Post -Uri http://localhost:8080/post -Body $postData -ContentType application/json
実行結果
StatusCode : 200
StatusDescription :
Content : {"id":123,"value":"InputData.Value","date":"2020-09-28T06:45:30.925+00:00"}
Jarファイル生成
- プロジェクトを選択して
- 実行 > 実行 > Maven Install
- targetの下にjarファイルが作成される
サーバーでの実行
java -jar [.jarファイル]
- これをスクリプトにして、サービス登録する