API 서로 다른 소프트웨어가 어떤 기능과 요청을 응답할 때 사용하는 규칙을 말한다. 보통 API 를 쓴다고 하면 클라-서버 나 프론트-서버 로 생각한다. 하지만 꼭 그런 것은 아니다.
예시) 주방(서버), 손님(클라이언트), 주문하는 태블릿PC(API)
HTTP 웹이란 환경에서 클라이언트와 서버가 서로 데이터를 주고받기 위해서 정해 놓은 규칙이다.
Restful API HTTP를 기반으로 리소스(자원)을 URI로 표현하고, HTTP Method로 행위를 표현하는 API 설계 방식이다. - 뜬구름 잡는 소리
URI 와 URL 은 비슷하지만 다르다. 포함 관계
리소스가 애매한 경우가 있는데 만약 우리가 게시물을 작성하는 API 를 HTTP 환경에서 요청했을 경우 서버는 게시물을 저장한다. 회원 가입의 경우 유저 데이터를 저장한다. 내가 무언가를 요청했을 때 서버에 저장되는 데이터를 리소스(자원) 이라고 한다.
만약 www.쇼핑몰.com/categories/1/products/2 해당 URL에 대해 설명하라고 한다면 어떻게 할 것인가?
: 1번째 카테고리 2번째 상품을 보는 것? (명확하지 않음)
API는 CRUD 로 이루어져 있다. 대표적으로 로그인은 예외 (애매하지만 POST 사용)
만약 {상품 = 이름, 가격, 수량} 이 있고 모두 수정한다면 PUT, 이름만 수정한다면 PATCH 를 사용한다.
Restful API란 URL + HTTP Method만 보고도 어떤 역할을 수행하는 API인지 알 수 있어야 한다.
Restful API 를 만들 때 URL 설계 규칙 (검색해보면 나온다)
JSON 하나의 규약이다. 어플리케이션이 어떤 것으로 만들었든 상관없이 편하게 통신하기 위해 만든 규약.
API 요청 예시 www.쇼핑몰.com/categories/2/products + POST HEADER application/json {"name": "바람막이", "price": 15000, "quantity": 5}
API 응답 예시 상태코드 2xx {"message": "당신이 지금 생성한 상품의 아이디는 2번입니다"}