#API #RESTful API #API토큰 #개발자 계정
학습 목표
프로토콜(protocol)
컴퓨터나 네트워크 장비가 서로 통신하기 위해 미리 정해 놓은 약속, 규약
TCP & UDP
데이터를 보내기 위해 사용하는 프로토콜로 데이터의 작은 단위인 패킷의 흐름을 제어하는 방식에 따라 나눈 프로토콜 (패킷을 전송하고 재조립하고 오류를 수정하는 방식).
Server(서버)
- 요청을 받는 컴퓨터
- 어떠한 자료에 대한 접근을 관리하는 네트워크 상의 시스템 (요청에 대한 응답을 보내준다.)
Client(클라이언트)- 요청을 하는 컴퓨터
- 그 자료에 접근할 수 있는 프로그램(웹 브라우저, 핸드폰 어플리케이션 등)
ex) 클라이언트 프로그램에서 사용자가 회원가입을 시도하게 되면, 서버로 회원정보를 보내게 되고 서버는 회원 정보를 저장해주기도 한다. 이 과정에서 클라이언트와 서버 간의 교류가 HTTP라는 규약을 이용하여 발생하게 된다.
=> Client는 특정 URL에 해당하는 자원을 요청(request)하고 Server는 특정 URL로 들어온 요청에 대한 응답(response)으로 자원을 내어준다.
*HTTP는 연결을 유지하지 않는 프로토콜이기 때문에 요청/응답 방식으로 동작한다.
한 컴퓨터가 다른 컴퓨터에 리소스 요청을 보낼 때 사용되는 말
HTTP 요청에 대한 상태가 어떤지 알려주는 것
*응답을 보낼 때에는 상태 코드도 있지만 때에 따라 문자열이나 JSON 등을 이용해서 데이터를 함께 실어서 보내기도 한다.
Request Method
이전에 봤던 HTTP 요청 메소드 중 GET, 리소스를 가져온다는 뜻인 메소드를 사용하고 있습니다.
Status Code
200 이라는 숫자 앞에 초록색 불이 들어왔습니다. 200 은 'OK', 성공했다는 뜻입니다. 여기에서는 GET 요청이 성공적이었다는 뜻이 됩니다.
Request URL
누가 요청을 하고 있는지를 담고 있습니다.
Remote Address
어느 리모트 서버에 요청을 하고 있는지 알려주고 있습니다. 현재는 157.245.183.96 의 443 포트에 요청을 보내고 있습니다.
Referrer Policy
요청을 보내는 곳이 당사자인지, 타 웹사이트에서 연결된 건지 등 알려줍니다. 현재는 'no-referrer' 로 현 웹사이트에서 보내고 있습니다.
CREATE
:생성READ
: 조회UPDATE
: 수정DELETE
: 삭제{
"squadName": "Super hero squad",
"homeTown": "Metro City",
"formed": 2016,
"secretBase": "Super tower",
"active": true,
"members": [
{
"name": "Molecule Man",
"age": 29,
"secretIdentity": "Dan Jukes",
"powers": [
"Radiation resistance",
"Turning tiny",
"Radiation blast"
]
},
{
"name": "Madame Uppercut",
"age": 39,
"secretIdentity": "Jane Wilson",
"powers": [
"Million tonne punch",
"Damage resistance",
"Superhuman reflexes"
]
},
{
"name": "Eternal Flame",
"age": 1000000,
"secretIdentity": "Unknown",
"powers": [
"Immortality",
"Heat Immunity",
"Inferno",
"Teleportation",
"Interdimensional travel"
]
}
]
}
superHeroes.homeTown
superHeroes['active']
superHeroes['members'][1]['powers'][2]
[reference] JavaScript object basics
CREATE
: POST(데이터 생성)READ
: GET(데이터 조회)UPDATE
: PUT(업데이트-전체 변경) | PATCH(업데이트-부분 변경)DELETE
: DELETE(데이터 삭제)REST API 활용 예시 - GET
GET 요청은 REST 에서 정보나 리소스를 가지고 올 때만 사용하라고 제시됩니다. 즉, 서버에 기록된 데이터나 리소스를 변경할 때 사용해서는 안된다는 뜻이죠.
이처럼 기존 리소스에 대한 변경을 하지 않고 그저 가져오는 역할을 하기 때문에 '안전한' 메소드라고도 볼 수 있습니다. 또한 하나의 GET 요청은 매번 동일한 결과를 나타내야 합니다 (서버의 리소스가 변경되지 않았다는 가정하에).
GET 요청 예시를 보겠습니다:
1. HTTP GET http://www.appdomain.com/users
2. HTTP GET http://www.appdomain.com/users?size=20&page=5
3. HTTP GET http://www.appdomain.com/users/123
4. HTTP GET http://www.appdomain.com/users/123/address
보시면 주소만 봐도 어떤 리소스를 가져올 수 있는지 파악할 수 있습니다.
/users
로 끝나고 서버에 기록된 유저들을 가져올 거라고 예상할 수 있습니다.?
뒤에 오는 항목들)를 통해 페이지와 개수를 정해주고 있습니다.123
에 일치하는 유저를 가지고 올 거라는 예상을 할 수 있습니다.address
정보만 가지고 올 거라는 예상을 할 수 있습니다.이처럼 GET 요청은 특정 리소스를 가지고 올 때 사용이 되고 기존 정보를 변경하거나 하는 작업을 하지 않습니다.
REST의 가이드라인을 따라 응답을 보내는 방식
대표적인 상태코드:
[REFERENCE]
WEB2 - HTTP
[Youtube] 기계들의 대화법 - REST API
REST API
HTTP란 무엇인가?
HTTP란 HTTP의 구조 및 핵심 요소
네트워크-쉽게-이해하기-9편-프로토콜-이란-Protocol-이란-무엇인가
HTTP Method
What is API
JSON