REST API

1.REST API?

  • Representational State Transfer
  • 자원을 URI로 표시하고 해당 자원의 상태를 주고 받는 것을 의미

2.구성

  • 자원 : URI(member/1)
  • 행위 : Method (GET,POST,PUT,DELETE)
  • 표현 : JSON,XML,TEXT 등

3.규칙

  • URI는 정보의 자원을 표시해야 한다.(소문자, 명사 사용)
  • URI에 행위(Method)가 들어가서는 안된다.
  • URI에 동사 행위 표현이 들어가서는 안된다.
  • URI에 ‘/’ 구분자는 계층 관계를 나타내는데 사용한다.
  • URI에 확장자와 하이픈(-)은 사용하지 않는다.

4.Method 사용규칙

  • POST : (create) 리소스의 생성
  • GET : (Read) 리소스의 조회
  • PUT : (Update,Replace) 리소스의 수정
  • DELETE : (Delete) 리소스의 삭제

5.Methos Sample

POST

  • POST http://www.example.com/customers (신규 고객 추가)
  • POST http://www.example.com/customers/12345/orders (신규 주문 추가)

GET

  • GET http://www.example.com/customers/12345 (고객 조회)
  • GET http://www.example.com/customers/12345/orders (고객 주문 조회)
  • GET http://www.example.com/buckets/sample (버킷 리스트 조회)

PUT

  • PUT http://www.example.com/customers/12345 (고객 정보 수정)
  • PUT http://www.example.com/customers/12345/orders/98765 (고객 주문 수정)
  • PUT http://www.example.com/buckets/secret_stuff (버킷 리스트 수정)

DELETE

  • DELETE http://www.example.com/customers/12345 (고객 삭제)
  • DELETE http://www.example.com/customers/12345/orders (고객 주문 삭제)
  • DELETE http://www.example.com/bucket/sample (버킷 리스트 삭제)

기타예제

GET /members/show/1 (X) 동사 행위 금지
GET /members/1 (O)

GET /members/insert/2 (X) 동사 행위 금지, 잘못된 메소드 사용
POST /members/2 (O)

POST /posts/put/:id (X)
POST /posts/update/:id (X)
PUT /posts/:id (O) 글 수정시 POST 사용

6.상태응답

  • 성공 : 200(정상),201(리소스 요청)
  • 실패 : 400(요청 부적절), 401(인증 실패), 403(요청 실패), 500(서버 오류)