連載記事「SpringBoot アプリ開発」を読み進めると、サンプルの Webアプリを制作することができます。
今回は、Javaのコントローラーとメインクラスを作成していきます。
連載記事
SpringBoot アプリ開発の連載記事は以下の通りです。
- 概要・使用プロダクト
- プロジェクト作成・SQL作成
- モデル・リポジトリの作成
- コントローラー・メインの作成(今回の記事)
- HTML・JavaScriptの作成
- CSS・画像の作成
- テスト・動作確認
目次
- コントローラーの作成
- メインの作成
1. コントローラーの作成
ツイートを処理する RESTful API として、以下のコントローラーを作成します。
src/main/java/sample/controller/TweetController.java
package sample.controller; import java.util.Collections; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import sample.model.Tweet; import sample.repository.TweetRepository; @RestController @RequestMapping("/tweet") public class TweetController { @Autowired public TweetRepository repo; @PostMapping public Map<String, Tweet> create( @RequestBody Tweet tweet ) { return Collections.singletonMap( "tweet", repo.save(tweet) ); } @GetMapping public Map<String, Iterable<Tweet>> read() { return Collections.singletonMap( "tweet", repo.findAllByOrderByCreateTimeDesc() ); } @PutMapping("/{id}") public void update( @PathVariable Long id, @RequestParam String txt ) { Tweet tweet = repo.findById(id).get(); tweet.txt = txt; repo.save(tweet); } @DeleteMapping("/{id}") public void delete(@PathVariable Long id) { repo.deleteById(id); } }
HTTPメソッド、URI、Javaメソッド(CRUD)の対応表は以下の通りです。
HTTPメソッド | URI | Javaメソッド |
---|---|---|
POST | /tsubuyaki | create |
GET | /tsubuyaki | read |
PUT | /tsubuyaki/{id} | update |
DELETE | /tsubuyaki/{id} | delete |
URI の {id} は可変で、つぶやきのIDになります。
2. メインの作成
SpringBoot アプリケーションを起動するためのクラスを作成します。
src/main/java/sample/App.java
package sample; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
GitHubリポジトリ
アプリのコードは、以下のリポジトリにもあります。