본문 바로가기
배우는 과정/코딩공부

API란 무엇일까? localhost?

by c급선임 2024. 11. 19.
반응형

API란 클라이언트가 서버에게 특정 정보를 받기 위해 사용하는 규칙? 메서드? 방법? 을 뜻한다.

우리가 주로 사용하는 API는 RESTful API를 사용한다.

 

RESTful API?

RESTful API란 REST API라고도 하며 특정 프레임워크(도구)가 아닌 API의 아키텍쳐 스타일을 말한다.

이 스타일이란 서버 클라이언트간에 CRUD를 사용하여 데이터 처리를 하고 비동기성이며, 자원기반으로 작동한다.

 

이 REST API를 구성하기 위해 가장 유명한 fast API와 Flask라는 프레임 워크를 사용하는데 둘다 파이썬 기반의 프레임 워크이다.

(참고로 REST API는 JAVA기반의 Spring Boot로도 만들 수 있음. 따라서 다양한 언어와 프레임워크로 가능)

둘 사이의 차이는 따로 설명하지 않고, fast API 기준으로 설명하면 REST API를 가장 쉽고 직관적으로 설계할 수 있는 프레임워크이다.

 

간단한 사용 흐름

1. 파이썬 파일에서 fast API 프레임 워크를 import

|

2. app = FastAPI() 같이 설계 도구가 들어있는 객체를 만들고 함수들을 만들어서 CRUD 기반의 기능들을 정의한다. 

|

3. uvicorn 파이썬파일이름:app --reload 명령어를 사용하여 Fast API 서버를 실행함과 동시에 정의한 API코드들을 클라이언트가 사용할 수 있도록 서버에 올린다.

|

4. 클라이언트는 파이썬의 request 라이브러리를 사용해서  response = request.get(FastAPI주소/명령쿼리) 로 서버와 연결하고 FastAPI 명령을 실행한다.

|

5. 클라이언트가 원하는 데이터를 얻는다.

 

이런식으로 사용한다.

 

여기서 URL 예시를 들어보면 "http://localhost:8000/명령" 의 형태를 가지는데 여기서 localhost란 현재 사용중인 내 컴퓨터의 특별한 주소, 즉 IP이다. 따라서 다른 컴퓨터에서 클라이언트로 사용하려면 내컴퓨터의 IP를 넣어주어야 한다. "서버 IP:8000/명령 형태가 들어갈 것이다.

 

또한 fast API는 기존에 있는 고유 API(ex JIRA API등)의 endpoint를 수정해줄 수 있다.

쉽게 말하면 reddit이라는 홈페이지 고유의 API 기능을 fast API의 함수로 감싸주어 기존 API의 출력값을 추가적으로 편집, 전처리등을 해주어 출력할 데이터를 커스터마이징 할 수 있다. 

 

 

반응형

댓글