Hello World


Spring Frameworkを使って簡単なREST APIを作成する手順です。
IntelliJのメニューから「File > New > Project > Spring Initializer」を選択します。
WebとLombokを追加してプロジェクトを生成してください。

プロジェクトを生成すると次のプロジェクトが生成されます。

├── mvnw
├── mvnw.cmd
├── pom.xml
├── spring-framework-hello-world.iml
└── src
├── main
│   ├── java
│   │   └── com
│   │   └── example
│   │   └── DemoApplication.java
│   └── resources
│   ├── application.properties
│   ├── static
│   └── templates
└── test
└── java
└── com
└── example
└── DemoApplicationTests.java

🐯 Web application

Controllerとして、src/main/java/com/example/DemoController.javaを追加します。

@RestController
@RequestMapping("/demo")
public class DemoController {
@Data
private static class DemoRequest {
private Integer id;
private String name;
}
@RequestMapping(value = {"/create"}, method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<String> create(@RequestBody DemoRequest request) {
System.out.println(request);
return ResponseEntity.ok(created);
}
}
  • @RestController:Spring MVCのコントローラを表します
  • @RequestMapping:リクエストを受け付けるメソッドとなり、返り値がレスポンスボディに

🐹 動作確認

mvn spring-boot:runでサーバを起動して、curlでOKを返せば成功です。

curl http://localhost:8080/demo/create \
-X POST -d '{id:111,name:aaa}' \
-H Content-Type: application/json

mvn spring-boot:runと同じようにjarファイルを作っても同じことを実現できます。

mvn clean package
java -jar target/demo-0.0.1-SNAPSHOT.jar --server.port=9999

🐞 Herokuにデプロイ

作成したアプリケーションをHerokuにデプロイしてみます。まずHerokuのCLIツールをインストール。

# Heroku CLIツールをインストール
brew install heroku
# Herokuにログイン
heroku login

プロジェクトのgitリポジトリを作成してコミットします。

git init
git add .
git commit -m Initial Commit

Herokuのアプリケーションを作成して、サーバにデプロイします。

# Heroku上に新しいアプリケーションを作成
heroku create
# Herokuにデプロイ
git push heroku master

作成したサーバに対して同じようにcurlコマンドでOKを返せば成功です。

curl https://xxx.herokuapp.com/demo/create \
-X POST -d '{id:111,name:aaa}' \
-H Content-Type: application/json

👽 参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍