Web系開発メモ

Java, C#, HTML, CSS, JavaScript のことなどを書いてます。

SpringBoot アプリ開発 4.コントローラー・メインの作成

連載記事「SpringBoot アプリ開発」を読み進めると、サンプルの Webアプリを制作することができます。

今回は、Javaのコントローラーとメインクラスを作成していきます。

連載記事

SpringBoot アプリ開発の連載記事は以下の通りです。

  1. 概要・使用プロダクト
  2. プロジェクト作成・SQL作成
  3. モデル・リポジトリの作成
  4. コントローラー・メインの作成(今回の記事)
  5. HTML・JavaScriptの作成
  6. CSS・画像の作成
  7. テスト・動作確認

目次

  1. コントローラーの作成
  2. メインの作成

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メソッド、URIJavaメソッド(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リポジトリ

アプリのコードは、以下のリポジトリにもあります。

spring-boot-tweet - GitHub

次の連載記事

5. HTML・JavaScriptの作成