API 정리

doriskim·2024년 1월 25일
0

API란?

Application Programming Interface
API란 한 프로그램에서 다른 프로그램으로 데이터 주고받기 위한 방법(코드)
한 마디로 메뉴판 같은 것

API란 애플리케이션에서 데이터를 읽거나 쓰기 위해 사용하는 인터페이스이다.

예) 웹툰 서비스 api: 웹툰 서버와 손님이 웹툰을 주고받기 위한 방법

// API 코드
app. get('/detail/:id', function (req, res) {
	// 상대가 이 url로 get 요청하면 아래 코드가 실행됨
	db.collection('웹툰').findOne({_id: parseInt(요청.params.id)}, function(에러, 결과){
		console. 10g(결과);
		res. render ('detail. ejs', { data: 결과});
})

위 API코드를 유저에게 알려주면 된다.
유저는 GET요청하는 코드를 짜면 웹툰을 볼 수 있다.

웹뿐만 아니라 (Windows API, Database 관리 프로그램 API, 다양한 프로그램 API, 라이브러리/프레임워크 API)와 같은 API가 있다.

API가 가져야할 내용

예) 1.(GET요청) 2.comic.naver.com/webtoon/detail 3.?id=318995
1. 요청방식(method)
2. 무슨 자료 요청할지
3. 자료요청에 필요한 추가정보 파라미터
+ 웹의 경우 REST API라는 원칙에 따라 작성하면 좋음

public / private / partner API

public API: 누구나 사용가능한 공개 API
private API: 사내에서 몰래쓰는 API
partner API: 미리 정해둔 놈만 쓰는 API

REST API

※ 필요한 사전 지식

  • URI: 통합 자원 식별자(Uniform Resource Identifier)는 인터넷에 있는 자원을 나타내는 유일한 주소이다. URI의 하위개념으로 URL, URN 이 있다
  • HTTP(s): 네트워크에서 기기들간에 의사소통 해나가는 규격사향

REST API란 REST를 기반으로 만들어진 API이다.
REST란 문서, 그림, 데이터 등의 자원을 이름으로 구분해서 해당 자원에 대한 상태, 정보를 주고 받는 것을 의미한다.

즉 REST API는 웹에서 사용되는 자원들을 HTTP URI를 기반으로 표현하고, 해당 자원에 대한 행위(CRUD)를 HTTP Method로 정의하는 방식을 말한다.

다양한 HTTP Method 중에서도 4가지 또는 5가지(get, post, put, delete, (patch))를 주로 사용한다.
또 HTTP Method를 활용해 해당 자원에 대한 CRUD를 적용한다.

< CRUD >
Create 생성 --> post
Read 조회 --> get
Update 수정 --> put
Delete 삭제 --> delete

< HTTP Method >
1. get 데이터 조회
2. post 데이터 추가
3. delete 데이터 삭제
4. put 정보를 통째로 갈아 끼울 때
5. (patch) 정보 중 일부를 변경할 때

REST의 가장 중요한 특성은 각 요청이 어떤 정보나 동작을 위한 것인지 그 모습 자체만으로 추론이 가능하다는 점이다.
REST API는 브라우저간 호환성이 좋은 json형식을 주로 사용한다.
get을 이용해서 유저에 대한 정보를 요청하면 서버로부터 유저에 대한 데이터를 json 포멧을 통해서 받아올 수 있다.
참고로 swagger-ui는 REST API를 문서화하는 툴이고 프론트엔드와 백엔드가 서로 협업할 때 자주 사용한다.

[참고]

https://www.youtube.com/watch?v=ckSdPNKM2pY&t=314s 코딩초보들이 헷갈리는 용어 : API가 뭐냐면
https://www.youtube.com/watch?v=Jg3FFBLyhK0 API란 무엇인가? | 초보자를 위한 쉬운 개념 정리!!
https://www.youtube.com/watch?v=iOueE9AXDQQ REST API가 뭔가요?https://www.youtube.com/watch?v=em7HOGu01ro 😲개발자들이 코딩보다 더 많이 하는 것..🌭API [거니의 IT단어집]
https://www.youtube.com/watch?v=ogT267HvNuQ&t=366s API란? 개념 정리와 포트폴리오에 유용한 대박 사이트 공유 🙌
https://www.youtube.com/watch?v=C7yhysF_wAg 면접 단골 질문! API, REST API가 뭔가요? (개발 필수지식)
위키백과 - URI
https://khj93.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80

0개의 댓글