[Spring] REST

박원종·2021년 2월 22일
0

spring

목록 보기
1/4
post-thumbnail

REST

  • 자원의 이름을 URI 로 구분해서 정보를 주고 받는 통신 규칙

REST 사용이유

  • 다양한 브라우저와 클라이이언트 등장
  • 클라이언트와 서버단의 결합도를 낮추어 완전히 분리
  • 플랫폼에 독립적

REST 핵심
1. XML or JSON 형태로 Response
2. HTTP Method(GET,POST,PUT,DELETE) 사용 : 행위 구분
3. HTTP URI를 통해 자원 명시


이 밖에도 REST의 특징들이 많이 있지만 이제 막 웹에 입문한 필자에겐 이정도가 가장 쓸모있는 지식

실습

MyController.java

package controller;

import mapper.Mapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Controller
public class MyController {
    @Autowired
    Mapper mapper;

    @ResponseBody
    @RequestMapping(value="/members")
    public List<Member> select(){
        return mapper.select();
    }

    @ResponseBody
    @RequestMapping(value="/members", produces = "application/json; charset=utf8", method = RequestMethod.POST)
    public String insert(@RequestBody Member member){
        mapper.insert(member);
        return member.getName() + " 데이터 추가완료";
    }
    @ResponseBody
    @RequestMapping(value="/members", produces = "application/json; charset=utf8", method = RequestMethod.PUT)
    public String update(@RequestBody Member member){
        mapper.update(member);
        return member.getName() + " update";
    }
    @ResponseBody
    @RequestMapping(value="/members", produces = "application/json; charset=utf8", method = RequestMethod.DELETE)
    public String delete(@RequestBody Member member){
        mapper.delete(member);
        return "delete " + member.getName();
    }
}

Mapper.java

package mapper;

import controller.Member;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface Mapper {
	public List<Member> select();
 	void insert(Member member);
 	void update(Member member);
    	void delete(Member member);
}

memberMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.Mapper">
    <select id="select" resultType="controller.Member">
        select * from member
    </select>
    <insert id="insert" parameterType="controller.Member">
        insert into
            member(name, age)
        values(#{name}, #{age})
    </insert>
    <update id="update" parameterType="controller.Member">
        update member
        set age = #{age}
        where name = #{name}
    </update>
    <delete id="delete" parameterType="controller.Member">
        delete from member
        where name = #{name}
    </delete>
    
</mapper>
profile
잡코딩

0개의 댓글