클라이언트와 서버 간의 약속, 프로토콜(Protocol)
서로 정보를 주고 받을 때 지켜야 하는 약속이 존재한다.
반드시 이 약속을 지켜서 통신해야 하며, 우리는 이 약속을 프로토콜이라 부른다.
인터넷으로 연결된 클라이언트와 서버는 웹 프로토콜인 HTTP를 사용하여 데이터를 주고 받는다.
웹(=인터넷망 속 가상 공간) 개발자 > 인터넷을 돌아다니기 위한 규약을 지켜야만 함 > HTTP를 지켜야만 한다.
HTTP 형식을 엄격하게 준수하지 않아도 통신을 가능하다. 하지만 규약 따르면 효율이 극대화!
RESTful API : HTTP 규약을 매우 잘 따른 API, REST의 원칙을 완벽하게 준수하는 API
RESTful API 쓰는 이유
- 웹에서 일반적으로 사용하는 표준 프로토콜 활용 > 다양한 플랫폼 및 언어에서 API를 손쉽게 사용하고 통합할 수 있다.
- API 사용이 직관적 > GET, POST, PUT, DELETE < 명확한 의미를 가지고 있어 이해하고 사용하기가 쉽다.
- 자원 중심적으로 URL을 통해 고유하게 식별할 수 있다. 일반적으로 CRUD 작업 지원(Create, Read, Update, Delete)
HTTP 에 담아 보내야하는 것들
인터넷 상에서 공유/전달하고 싶은 모든 것들은 다 http에 넣어서 보내야 한다
HTTP 요청과 응답은 Head / Body 로 나누어져있음.
Header(헤더)
- 통신 상태가 어떤지 알려주는 HTTP code(상태 코드, 200, 404, 500 등)
- 응답이 어떤 형태인지.
Body(바디)
- 응답의 본문 데이터(요청 성공, 요청 실패에 대한 정보 등)
- post, put의 경우, 전달하려는 데이터
HTTP 에 담아보내는 나의 목적 = HTTP method
- 생성(=등록) : POST
- 조회 : GET
- 수정 : PUT(덮어쓰기) / PATCH(일부 변경)
- 삭제 : DELETE
REST API URL 규칙
- 대문자 X, 소문자 O
- 언더바(_) X, 하이픈(-) O
- 마지막에 / 포함 X
- 목적을 포함하지 않음 X
- 복수형 O
URL + HTTP method (API 설계)
http://localhost:8888 : 내 컴퓨터 주소(local host)
잘못된 예
http://localhost:8888 상품 "등록"=> /post_product
http://localhost:8888 전체상품 "조회" => /select_all_products
http://localhost:8888 전체 상품 "삭제" => /DeleteAllProducts
올바른 예
http://localhost:8888 상품 "등록"=> "POST" /product
http://localhost:8888 전체 상품 "삭제" => "DELETE" /products
http://localhost:8888 전체 상품 "조회" => "GET" /products
http://localhost:8888 상품 " 개별 조회" => "GET" /products/{id}
http://localhost:8888/products/1
http://localhost:8888/products/2
http://localhost:8888/products/3
'졸업작품 > Node.js' 카테고리의 다른 글
[Node.js] 회원 API 기초 설계 (0) | 2024.04.19 |
---|---|
Express - params, query(쿼리 문자열) (0) | 2024.04.18 |