[데이터 엔지니어링] API

2022. 4. 7. 15:16AI/Codestates

728x90
반응형

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 : 서버 측의 특정 리소스를 삭제할 때 사용

  • 예시 : 유저 탈퇴

- MDN HTTP Request Methods

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' 이라고 부르게 됨

- REST API 튜토리얼

 

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 : 데이터 삭제

- REST 에서 주로 사용되는 HTTP 상태 코드

728x90
반응형

'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