Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

ddodoi 님의 블로그

3주차-파트04: API, URL, HTTP 본문

웹풀스택 일일정리

3주차-파트04: API, URL, HTTP

ddodoi 2024. 8. 29. 23:47

CHAPTER 1. API

API란(Application Programming Interface)?

"컴퓨터나 컴퓨터 프로그램 사이의 연결이다. 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공한다." -위키백과 출처

 

예를 들어 우리가 사용하는 지하철 앱을 생각해보자. 지하철 도착 어플로 카카오맵, 네이버 지도, 또는 개인이 만든 어플을 사용할 수 있다. 이러한 앱을 만들려면 교통공사의 데이터 베이스에 접근해야하는데 교통공사에서는 개발자들한테 데이터베이스에 대한 직접적인 권한을 주지 않으므로 개발자들은 api를 이용하여 교통 공사의 데이터 베이스에 접근 할 수 있다.

API의 개념

 

 

API 키(key)란?

https://aws.amazon.com/ko/what-is/api-key/

 

API 키란?- API 키 및 토큰 설명 - AWS

API 키는 API 개발자가 API에 대한 액세스를 제어하는 데 사용하는 영숫자 문자열입니다. API는 두 소프트웨어 모듈 간에 데이터를 교환할 수 있는 통신 메커니즘입니다. 모듈용 API를 생성하면 다른

aws.amazon.com

 

 

 

 

 

<인터페이스(Interface)>

중간에서 양쪽에 있는 친구들을 중재/매개체가 되어주는 역할

- GUI: Graphic User Interface = 컴퓨터(프로그램)한테 명령을 내릴 때, 그래픽을 사용해서 명령을 내리는 방식

- CLI: Command Line Interface = 명령어 문장("줄") 컴퓨터한테 명령을 내리는 것.

 

 

 

 

 

REST API란?

HTTP 규약을 잘 따른 API

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

 

웹(=인터넷망 속에 가상공간) 개발자는 인터넷을 돌아다니기 위해 HTTP란 규약(프로토콜)을 지켜야 한다.

과거에는 HTTP형식을 따르지 않고 데이터를 아무렇게나 주는 일반 API를 이용하였다. 그러나 HTTP형식을 따르면 효율성이 극대화 되기 때문에 개발자들은 최근들어 HTTP규약을 잘 따른 API인 "REST API"를 사용하기 시작하였다.

 

-REST API의 특징-

1. 무상태성(Stateless)

2. 클라이언트-서버 구조(Client-Server architecture)

3. 계층형 시스템 (Layered System)

 

여기서 이전에 배웠었던 HTTP내용에 대해 복습해보자.

인터넷으로 연결된 클라이언트와 서버는 웹 프로토콜인 HTTP((HyperText Transfer Protocol)를 사용하여 데이터를 주고 받는다. 즉, 인터넷 상에서 공유/전달 하고 싶은 모든 것들은 다 HTTP에 넣어서 보내야 한다.

 

 

 

<HTTP의 형태 (프로토콜 템플릿)>

HTTP는 head와 body로 나누어져 있으며 각 부분에 담기는 것이 다르다. 

Head에는,

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

    예를 들어 200: 정상

                    404: 클라이언트가 원하는 걸 못 찾겠다.

                    500: 서버가 이상하다

    우리는 이 숫자들을 HTTP(status) code라고 부른다.

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

 

 

 

Body에는,

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

 

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

ex)전체 상품 보고 싶어 = 전체 상품 리스트 + "조회"이 상품 등록 해줘 = ______+ "등록"

 

 

 

 

그럼 Body의 2번에서처럼 데이터를 달라고 요청할려면 무얼 이용해야 할까? 답은 바로 URL이다.

<URL(Uniform Resorce Locator)>

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

 

ex)

http://localhost:8888(야 컴퓨터야)/select_all_products(=전체 상품 조회) 

http://localhost:8888/post product(=상품 등록)                                        

http://localhost:8888/DeleteALLProducts(=전체 상품 삭제)                     

https://www.lotteon.com/p/display/main/lottemart(=롯데마트 열어줘)

 

 

 


 

<REST API URL 규칙>

- 대문자 X, 소문자 O

- 언더바(_) X, 하이픈(-) O

- 마지막에 / 포함 X

- 행위를 포함하지 않습니다 = 목적을포함하지 않습니다⭐ 

- 파일 확장자 포함 X

- ✔️복수형을 쓴다. 


 

 

 

그럼 REST API URL 규칙을 적용하여 위 예시의 URL을 수정해보자.

 

<API 설계> - URL + method 연습 해보기!

 

1. 상품 전체 "조회" GET

    http://localhost:8888/products

 

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

     /products/{id}

     ex)

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

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

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

 

3. 상품 id 개별 "수정" PUT

    /products/{id}

 

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

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

- 통일감

 

 

 

 

 

 

 

 

CHAPTER 2. API를 어떻게 사용하는가?

 

쇼핑몰 사이트가 있다고 가정하자.

 

 

메인페이지:

쇼핑몰 메인 페이지 틀 -> 전체 상품 조회 API -> 전체 상품 데이터를 받고 -> 받은 데이터를 페이지에 뿌려준다.

 

 

 

 

상품 상세 페이지:

상품 상세 페이지 틀 -> 상품1 개별 조회 API -> 데이터를 받아서 -> 틀에 맞게 뿌려준다.

 

 

 

 

상품 관리 페이지:

상품 관리 페이지틀 ->전체 상품 조회 API -> 데이터

 

상품 수정 페이지:

상품 수정 페이지 틀 -> 상품1 개별 조회 API           //완료버튼 -> 상품1 수정 API