본문 바로가기
프로그래밍

REST API 란 ?

by jjjhhhhh 2021. 12. 16.

 

  • RESTful API
    • REST API
    • REST 아키텍처를 구현한 API
    • HTTP 기반의 웹기술 구현

 

  • REST ( Representational State Transfer )
    • 웹상의 자원(데이터)를 자원의 이름으로 표현해서 자원의 상태(값,정보)를 주고 받는 행위
    • HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD 처리를 적용한다.

 

  1. 기존의 방식
- GET  http://localhost/board/list.do	 	: 게시판 목록 페이지  
- POST http://localhost/board/add.do 		: 글쓰기 페이지  
- POST http://localhost/board/edit.do?seq=1	: 1번 seq에 해당하는 글 수정   
- GET  http://localhost/board/del.do?seq=1 	:1번 seq 글 삭제  
- GET  http://localhost/board/list.do?word=검색어 :'검색어' 검색

 

  1. REST 방식
- GET    http://localhost/board 	:목록  
- POST   http://localhost/board 	:글쓰기  
- PUT    http://localhost/board/:id 	:수정하기   
- DELETE http://localhost/board/:id 	:삭제하기   
- GET 	 http://localhost/board/검색어 	:검색하기

 

  • REST API 설계 규칙1. URI에서 자원을 표시한다.3. HTTP Method를 사용해 행동을 표시한다. (Method를 통해 행동이 결정 )
    5. 구분자 '/' 사용

    - http://localhost/board/ (x)

    - http://localhost/board  (o)


    8. '_' 사용하지 않는다10. 반환하는 데이터는 주로 데이터만 반환한다(*****)
  • - HTML 소스 반환(x) > 페이지 반환 > 사용 범위 > 브라우저 한정

    a. AJAX

    b. OpenAPI > REST 방식으로 구현 : URL 명확 & 범용 포맷 반환값 (XML, JSON)

  • - 순수 데이터 반환(o) > XML, JSON 반환 > 사용 범위 > 다양해짐(웹, 모바일, 기타 플랫폼.. )
  • 9. 파일 확장자를 사용하지 않는다.
  • 7. '-'을 사용가능
  • 6. URI 끝에 '/'는 적지 않는다
  • 4. URI + HTTP Method = 완성
  • a. GET : 리소스 요청c. PUT : 데이터 수정 (전체 수정)e. DELETE : 데이터 삭제
  • d. PATCH : 데이터 수정 (일부 수정) - 잘안쓴다
  • b. POST : 데이터 전달 및 생성 (일방적으로 주는 메소드)
  • 2. URI에 동사(행위)를 표시하지 않는다. (add,del,edit ...)