데브코스

백엔드(2) - API

hxx_1 2024. 8. 28. 22:11

API ( Application Programming Interface) : 프로그램들이 서로 상호작용하는 것을 도와주는 매개체 , 어떠한 응용프로그램에서 데이터를 주고 받기 위한 방법을 의미

인터페이스: 중간에서 양쪽에 있는 친구들을 중재/매개체가 되어주는 역할을 함 

  • GUI (Graphic User Interface) : 컴퓨터(프로그램)한테 명령을 내릴 때, 그래픽을 사용해서 명령을 내리는 방식
  • CLI(Command Line Interface): 명령어 문장("줄") 으로 컴퓨터한테 명령을 내리는 방식 

REST API: HTTP 규약을 잘 따른 API 

RESTful API: HTTP 규약을 매우매우 잘 따른 API

 

HTTP 프로토콜 템플릿

  • Head

1) 통신 상태가 어떤지 알려준다.

ex) 200: 정상이다, 404: 클라이언트가 원하는걸 못찾겠다, 500: 서버가 이상하다. => 이와 같은 숫자들을 HTTP (status) code 라고 부른다.

2) 응답이 어떤 형태인지 적어준다. 예를 들어 html 이다. 

  • Body

1) 전달해줄 데이터 / 화면 / ... 

2) 이 데이터 좀 줄래? + "목적" ...

    ex) 전체 상품 보고 싶어 = 전체 상품 리스트 + "조회" 

 

URL(Uniform Resource Locator)

 

: 인터넷 상에서 웹 페이지가 어디 있는지 "위치"를 알려주는 것 뿐 아니라, 데이터 연산 해달라고 서버에 요청을 보내는 방법이다. 쉽게 말해서, 웹 페이지 주소라고 할 수 있다. 


URL + method 연습

 

< RestAPI URL 규칙 >

1. 대문자 X , 소문자 O

2. 언더바(_) 사용 X , 하이픈(-) O

3. 마지막에 / 포함 X

4. 🌟행위를 포함하지 않는다. = 목적을 포함하지 않는다.

5. 파일 확장자 포함 X

6. 복수형을 쓴다.

 

1️⃣ http://localhost:8888/"POST" / product - 상품 등록

2️⃣ http://localhost:8888/ "GET" / products - 전체 상품 조회

3️⃣ http://localhost:8888/ "DELETE" / products  - 전체 상품 삭제

 

 

URL + method 연습(2) : API 설계

 

1. 상품 전체 "조회" GET 

http://localhost:8888/products

 

2. 상품 id 개별 "조회" GET 

/product/{id}

ex) http://localhost:8888/products/1 => id=1인 데이터를 요청함

      http://localhost:8888/products/2 => id=2 인 데이터를 요청함 

 

3. 상품 개별 "수정" PUT

/products/{id}

 

cf) 복수형으로 표현하면 좋은 이유

- 상품"들" 중에 id 값을 가지는 개별 데이터

- 통일감


🌟 배운 점 

오늘은 API 에 대해서 배웠다. 그동안 많이 들었지만, 무슨 역할을 하는지 인터넷에서 찾아봐도 잘 이해를 못했었는데 오늘 수업을 들으면서 어떤 역할을 하는지 감을 잡았다. 실습을 해보면 더 정확하게 이해할 수 있을 것 같다.