요청을 구분할 수 있도록 하는 “체계”
클라이언트, 서버와 같은 서로 다른 프로그램에서
요청과 응답을 주고 받을 수 있게 만든 체계입니다.
클라이언트에서 요청을 보내고, 서버 컴퓨터는 요청을 받아서 응답을 해준다.
이때 요청을 구분하기 위한 주소는 “서버주소/A”의 형태로 정의되어 있습니다.
여기서 “서버 주소”는 서버 컴퓨터가 위치한 곳의 주소입니다.
어떤 기능을 수행할 때 서버와 클라이언트는 요청을 주고 받아야 하는 데 이때 다른 서로 다른 요청을 구분하기 위한 주소가 API입니다.
API를 만들 때 데이터를 주고 받는 기능도 함께 넣습니다. 로그인 요청을 할 때 아이디와 데이터가 필요합니다. 비디오 파일이나 이미지 파일에 대한 응답을 받을 때도 데이터가 함께 와야 합니다.
이때 API를 통해 요청과 응답을 주고 받을 때 데이터도 같이 담긴다.
C(create) : 올리는 요청
R (read) : 불러오는 요청
U (update) : 바꾸다
D (delete) : 지우는 요청
CRUD 별로 주소가 생기면 주소가 너무 많아지고
관리하기가 함들어진다.
좀 더 체계적인 API 즉, RESTful API가 만들어진다.
잘됐어 : 200번대 코드
잘 안 됐어: 클라이언트 요청 (400) 서버의 문제 (500)
HTTP 상태 코드 -> 요청에 대해 잘 수행했는지 대답
404에러 코드 -> 서버는 문제없는데 요청이 이상하다.
요청하고 응답할 때 담기는 데이터가 저장되어 있는 형식
응답이나 요청이 각각 다른 형식으로 되어있으면 통일성이 없기 때문에 각 기능마다 코드를 다시 작성해야 하는 어려움이 있다.
하지만 중괄호로 시작하고 키와 값으로 이루어져 있고, 이를 콜론으로 구분하는 JSON으로 형식을 통일하며 응답과 요청을 통일된 형식으로 주고 받을 수 있다.
-> 데이터를 주고 받는 주머니
다른 소프트웨어에 요청을 보낸다.
SDK: api를 제공해주는 다른 소포트웨어