LoginSignup
3
7

More than 5 years have passed since last update.

◆ SpringBoot+gradle REST+JSON形式のAPIを呼び出してみる

Posted at

★ はじめに

環境構築メモにJavaのバージョンを書き忘れました。Java8になります。
こちらの記事も自分用のメモになります。

★ HelloWorld

最初なのでまず、画面に「HelloWorld」を表示させることから試してみます。
パッケージ構成は以下のようにしました。

キャプチャ.PNG

SampleProjectApplication.javaと同じ階層にアプリケーション層としてappを作成。
さらにその下にcontrollerを作成しています。

RestApiController.java
package com.example.sample.app.controller;

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

@RestController
@RequestMapping("api/sample")
public class RestApiController {

    @RequestMapping(value = "/hello")
    public String index() {
        return "Hello World!";
    }
}

プロジェクトを右クリック ⇒ [実行(R)][4 Spring Boot アプリケーション] の順に選択。
コンソールにログが出力されます。

http://localhost:8080/api/sample/helloにアクセスします。

WS000004.JPG

無事表示されました。

@RequestMappingの()内の記載ですが、valueを省略したり、pathと記載してもOKみたいですね。

★ HTTPメソッドの実装

HTTPメソッドがGETで、投げると誕生日石(月、名前、色)の情報を返却するメソッドを実装します。
@RequestMappingRequestMethodGETを指定します。

RestApiController.java
package com.example.sample.app.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.example.sample.app.resource.BirthStone;

@RestController
@RequestMapping("api/sample")
public class RestApiController {

    @RequestMapping(value = "/getBirthStone", method = RequestMethod.GET)
    @ResponseBody
    public BirthStone getBirthStone() {
        BirthStone birthStone = new BirthStone("2月", "アメジスト", "紫");
        return birthStone;
    }
}

appの下にresourceを作成し、誕生日石の情報を返却するためにBirthStoneクラスを作成します。

BirthStone.java
package com.example.sample.app.resource;

import java.io.Serializable;

public class BirthStone implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 月 */
    private String month;

    /** 名前 */
    private String name;

    /** 色 */
    private String color;

    public BirthStone (String month, String name, String color) {
        this.month = month;
        this.name = name;
        this.color = color;
    }

    // getter/setter記載略
}

Advanced REST ClientでAPIを呼び出した結果。

cap_20190409_0001.PNG

レスポンスが得られました。

HTTPメソッドがPOSTの場合は、RequestMethod=POSTと記述します。

3
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
7