2022. 4. 7. 15:16ㆍAI/Codestates
API 란?
- Application Programming Interface 의 약자로 프로그램들이 소통할 수 있는 인터페이스
- 기존에 존재하는 프로그램과 어떻게 소통할 수 있는지 알려주는 인터페이스라고 볼 수 있음
▶ 예시
- API를 음식점과 비교
- 클라이언트 : 손님이 요청하고 있는것
- API : 메뉴
- API Server : 웨이터
- Service Server : 주방
API 응답
- 서버에서 응답을 보낼 때에 규칙처럼 정해진 형식은 없음
- 보통 접하게 될 수 있는 응답은 JSON 형식일 가능성이 높음
- API의 입력 값과 결과 값에 제한된 형식은 없음
- CSV, 문자열, JSON, XML 등 모두 가능함
- 하지만 Web API 는 JSON 형식을 많이 사용함
▶ JSON
- JSON ( Javascript Object Notation ) 에서 Javascript는 파이썬처럼 하나의 프로그래밍 언어 따라서 JSON이란 말 그대로 자바스크립트 에서 'Object'를 표기하는 방식
- 파이썬이 'Dictionary' 를 표기하는 방식과도 비슷하게 생김
- 어플리케이션에서도 쉽게 이해할 수 있는 장점이 있음
HTTP 란?
- HyperText Transfer Protocol 이라는 약어로 컴퓨터들의 통신 규약 중 하나
- 하나의 컴퓨터가 다른 컴퓨터와 소통을 하고 싶을 때에 ( 파일을 받거나 전달하거나 등 ) 정해진 규칙과 틀을 준수해야 원활한 소통이 가능
HTTP Request 란?
- 보통 한 컴퓨터가 다른 컴퓨터에 리소스 요청을 보낼 때 사용되는 말 보통 요청을 하는 컴퓨터는 클라이언트라 부르고 요청을 받는 컴퓨터는 서버라고 부름
▶ CRUD 에 사용되는 HTTP 메소드
- GET : 특정 리소스를 달라고 할 때에 사용됨
- 예시 : 페이지 로딩할 때
- POST : 클라이언트에서 서버측에 많은 정보를 전달할 때 사용
- 예시 : 회원가입을 할 때에 특정 유저의 정보를 서버에 저장
- GET도 클라이언트의 정보를 전달하는데도 사용됨. POST는 주로 JSON과 같이 한줄로 표현되기 힘든 데이터를 전달할 때 사용
- PUT / PATCH : 서버 측의 특정 리소스를 업데이트 할 때 사용됨. PUT은 데이터 전부를 바꿀 때, PATCH는 부분적으로 변경할 때 사용됨
- 예시 : 사용자 닉네임 변경
- DELETE : 서버 측의 특정 리소스를 삭제할 때 사용
- 예시 : 유저 탈퇴
HTTP Response 란?
- HTTP 규향을 통해서 보낸 요청이기 대문에 응답 또한 HTTP 규약에 따른 응답을 받게 됨
- HTTP 상태 코드들의 분류
- 100 번대 : 정보 응답
- 200 번대 : 성공 응답
- 300 번대 : 리다이렉션 메시지
- 400 번대 : 클라이언트 에러 응답
- 500 번대 : 서버 에러 응답
HTTP 예시
- 'Request Method': 이전에 봤던 HTTP 요청 메소드 중 GET, 리소스를 가져온다는 뜻인 메소드를 사용하고 있습니다.
- 'Status Code' : 200 이라는 숫자 앞에 초록색 불이 들어왔습니다. 200 은 'OK', 성공했다는 뜻입니다. 여기에서는 GET 요청이 성공적이었다는 뜻이 됩니다.
- 'Request URL' : 누가 요청을 하고 있는지를 담고 있습니다.
- 'Remote Address' : 어느 리모트 서버에 요청을 하고 있는지 알려주고 있습니다. 현재는 157.245.183.96 의 443 포트에 요청을 보내고 있습니다.
- 'Referrer Policy' : 요청을 보내는 곳이 당사자인지, 타 웹사이트에서 연결된 건지 등 알려줍니다. 현재는 'no-referrer' 로 현 웹사이트에서 보내고 있습니다.
REST API 란?
- REST는 REpresentational State of Treanfer 의 줄인말
- World Wide Web ( WWW ) 와도 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍쳐의 한 형식
- 총 6개의 가이드라인이 존재하는데 다 따르게 된다면 해당 아키텍쳐를 'RESTful' 이라고 부르게 됨
How to Design a REST API
Follow these steps to design a REST API - Identify Object Model, Create Resource URIs, Determine Representations and Assign HTTP Methods.
restfulapi.net
REST 와 HTTP
▶ 가이드 없는 HTTP Request
- REST 아키텍쳐는 HTTP를 사용할 때 특정 가이드라인들을 제시함
- REST 아키텍쳐는 HTTP를 사용할 때 일종의 가이드라인을 제시해서 웹 API의 혼란 속에 질서를 세우려고 하는 것
- 가이드라인이기 때문에 모든 API가 다 따라야 하는 것은 아님
- REST APT를 작성했다고 하면 HTTP 메소드 사용법
- GET : 데이터를 조회
- POST : 데이터를 생성
- PATCH : 데이터를 업데이트 (일부 변경)
- PUT : 데이터를 업데이트 (전체 변경)
- DELETE : 데이터 삭제
'AI > Codestates' 카테고리의 다른 글
[Day 54] Sprint Review (0) | 2022.04.10 |
---|---|
[데이터 엔지니어링] NoSQL (0) | 2022.04.07 |
[데이터 엔지니어링] 웹 스크레이핑 (0) | 2022.04.05 |
[데이터 엔지니어링] Python 활용 (0) | 2022.04.04 |
[Day 49] Sprint Review (0) | 2022.04.04 |