REST 핵심
1. XML or JSON 형태로 Response
2. HTTP Method(GET,POST,PUT,DELETE) 사용 : 행위 구분
3. HTTP URI를 통해 자원 명시
이 밖에도 REST의 특징들이 많이 있지만 이제 막 웹에 입문한 필자에겐 이정도가 가장 쓸모있는 지식
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();
}
}
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);
}
<?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>