API(Application Programming Interface)
- 클라이언트의 요청을 구분할 수 있도록 하는 체계
- 운영체제 혹은 다른 애플리케이션과 상호 작용하기 위해 정의된 약속을 쓰는 인터페이스
- API를 만들 때는 데이터를 주고 받는 기능도 들어가기때문에 API를 통해 요청과 응답을 주고 받을 때는 데이터도 같이 담긴다.
REST API
- HTTPRequest를 보내서 JSON 또는 XML 형식으로 데이터 묶음이 온다면 보통 'REST API'
- 일반적인 의미의 API와는 달리 REST API는 웹을 매개체로 이용하며 결과물도 단순 텍스트다보니 좀 더 광범위하게 사용되는 편 (ex. openAPI - 지도API, 날씨API 등)
API를 공부하다가 SDK에 대해 찾아보게 되었다.
API < SDK
SDK : 해당 소프트웨어를 만들때 필요한 것들이 들어있는 키트
API : 키트 안에 들어있는 일부, 작은 부품같은 개념으로 API를 활용하여 다양한 것을 만들 수 있음
기획에서 CRUD관점에서 봐야하며, 만약 특정 기능이 없다면 기획의도가 명확한 이유있는 기획이어야 함
CRUD요청은 각각의 주소를 가진다. ( 서버컴퓨터 주소/각각의 주소 )
CRUD ?
C : Create , R : Read , U : Update , D : Delete
ex) 타임라인에 사진을 올릴 경우
Create: 올린다 , Read : 불러온다) , Update : 바꾼다 , Delete : 지운다
RESTful API ?
- 각각의 주소가 너무 많아지기 때문에 좀더 체계적으로 API를 관리하기위해 RESTful API라 부르는 사회운동(절대 규칙이 아닌)이 만들어짐
- Create(자원생성) ⇒ POST
- Read(자원 조회) ⇒ GET
- Update(자원 수정) ⇒ PUT(전체) / PATCH(부분)
- Delete(자원 삭제) ⇒ DELETE
여기서 POST, GET, PUT, PATCH, DELETE를 메소드(함수)라고 부른다
클라와 서버사이에서 요청/응답을 주고받을 때 필요한 데이터
다양한 형식이 존재할 수 있지만 효율적으로 사용하기 위하여 가장 유명한 형식을 사용하기로 약속
⇒ 현재 가장 유명한 데이터 형식은 JSON
단일 정보 불러올 때
{
키1(Key): 값1(Value),
키2(Key): 값2(Value)
}
// ex)로그인정보
{
"id": "mschoise",
"px": "a123456"
}
{
키1(Key): 값1(Value),
키2(Key): 값2(Value),
키3(Key): [ 값3, 값4, 값5 ]
}
// ex)상품정보
{
"category": "음료",
"sort": "desc",
"items": ["카페모카","카피라떼","아메리카노"]
}
자주보는 응답
성공 = 200번대
실패 = 400번대(클라이언트의 요청에서 문제), 500번대(서버 문제)
공부하며 정리&기록하는 ._. 씅로그