【Spring Boot入門(6)】RestAPI(DELETE)を作ってみる

はじめに

前回、Spring BootでRest API(POST)を作成してリクエスト情報をDB登録するAPIを作成しました。

 

今回は、リクエストされた情報をkeyにテーブルのレコードを削除するRest API(POST)をSpring Bootで作成していきます。

今回やることを絵にするとこんな感じ

 

 

 環境

  • OS:OS X 10.11 El Capitan
  • STS:3.8.4.RELEASE

 

前提

以下が完了している前提で説明します。

【Spring Boot入門(4)】Rest API(GET)を作ってみる

 

 

Rest API(DELETE)の作成

Rest API(DELETE)の作成では、前回作成したソースコードに対して以下の変更を行います。

  1. サービス・クラス作成(ItemService.java)修正
  2. コントローラ(ItemController.java)修正

 

1.サービス・クラス作成(ItemService.java)修正

src/main/java/com/example/service/ItemService.java
package com.example.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.example.domain.Item;
import com.example.repository.ItemRepository;

@Service
@Transactional
public class ItemService {
	@Autowired
	ItemRepository itemRepository;
	
	/**
	 * 商品一覧取得サービス
	 * @return List<item>
	 */
	public List<Item> findAll() {
		return itemRepository.findAll();
	}
	
	/**
	 * 商品登録サービス
	 * @param item
	 * @return item
	 */
	public Item create(Item item) {
		return itemRepository.save(item);
	}
	/**
	 * 商品削除サービス
	 * @param id
	 */
	public void delete(Integer id) {
		itemRepository.delete(id);
	}
}

2.コントローラ(ItemController.java)修正

src/main/java/com/example/api/ItemRestController.java

src/main/java/com/example/api/ItemRestController.java
package com.example.api;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

import com.example.domain.Item;
import com.example.service.ItemService;

@RestController
@RequestMapping("api/items")
public class ItemRestController {
    @Autowired
    ItemService itemService;
    
    /**
     * 商品一覧取得API
     * @return List<item>
     */
    @GetMapping
    List<Item> getItems() {
        List<Item> customers = itemService.findAll();
        return customers;
    }
    
    /**
     * 商品登録API
     * @param item
     * @return item
     */
    @PostMapping
    @ResponseStatus(HttpStatus.CREATED)
    Item postItem(@RequestBody Item item) {
    	return itemService.create(item);
    }
    
    /**
     * 商品削除API
     * @param id
     */
    @DeleteMapping(path = "{id}")
    @ResponseStatus(HttpStatus.NO_CONTENT)
    void deleteItem(@PathVariable Integer id) {
    	itemService.delete(id);
    }

}
以上でRestAPI(DELETE)の修正は完了です。

 

 

Rest API(DELETE)の動作確認

パッケージ・エクスプローラーでsrc/main/java/com/example/RestApiApplication.javaを右クリック>実行>Spring Boot アプリケーションでAPサーバを起動します。

 

Google Chromeで「http://localhost:8080/api/items」にアクセスします。

 

ターミナルを開き、curlコマンドでRestAPIをコールします。

command
$ curl http://localhost:8080/api/items/1 -i -XDELETE
HTTP/1.1 204 
Date: Sun, 02 Jul 2017 00:42:16 GMT
再度、Google Chromeで「http://localhost:8080/api/items」にアクセスします。

id=1のりんごが削除されていることが確認できます。

以上で、Spring BootによるRestAPI(POST)の作成は完了です。

 

 

おわりに

今回はSpring BootでRest API(DELETE)を作成する手順について解説しました。

Spring BootでのRest APIの作成はREST API(GET)、REST API(POST)と同様に非常に簡単でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください