본문 바로가기

학습 내용 정리/기본

REST API

728x90

REST API

Representational State Transfer

: 대표적인 상태 교환

 

웹의 장점을 최대한 활용할 수있는 아키텍처로서 REST를 발표함.

REST의 규칙을 지키면서 만든 API를 REST API 혹은 RESTful API라고 부릅니다.

 

API

Application Programming Interface(애플리케이션 프로그램 인터페이스)

 

Application :  고유한 기능을 가진 모든 소프트웨어

Interface :  두 애플리케이션 간의 서비스 계약, 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의

 

* API 문서에는 개발자가 이러한 요청과 응답을 구성하는 방법에 대한 정보가 들어 있습니다.

 

REST의 특징

1) Uniform (유니폼 인터페이스) 

2) * Stateless (무상태성) : 서버가 요청 간에 클라이언트 데이터를 저장하지 않음

3) Cacheable (캐시 가능) 

4) Self-descriptiveness (자체 표현 구조) : REST API만 보고도  쉽게 이해 가능한 구조

5) Client - Server 구조 : 서버는 API 제공 / 클라이언트는 사용자인증, 로그인 정보 관리 로 역할 확실히 구분

6) 계층형 구조

 

REST API 중심 규칙

1) URI는 정보의 자원을 표현해야 한다. 

    - 리소스 명은 동사보다 명사를 사용

2) 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.

 

GET 조회
POST 생성
PUT 수정
DELETE 삭제

 

REST API의 장점

1. 통합 

API는 새로운 애플리케이션을 기존 소프트웨어 시스템과 통합하는 데 사용됩니다. 그러면 각 기능을 처음부터 작성할 필요가 없기 때문에 개발 속도가 빨라집니다. API를 사용하여 기존 코드를 활용할 수 있습니다.

2. 혁신 

새로운 앱의 등장으로 전체 산업이 바뀔 수 있습니다. 기업은 신속하게 대응하고 혁신적인 서비스의 신속한 배포를 지원해야 합니다. 전체 코드를 다시 작성할 필요 없이 API 수준에서 변경하여 이를 수행할 수 있습니다.

3. 확장

API는 기업이 다양한 플랫폼에서 고객의 요구 사항을 충족할 수 있는 고유한 기회를 제공합니다. 예를 들어 지도 API를 사용하면 웹 사이트, Android, iOS 등을 통해 지도 정보를 통합할 수 있습니다. 어느 기업이나 무료 또는 유료 API를 사용하여 내부 데이터베이스에 유사한 액세스 권한을 부여할 수 있습니다.

4. 유지 관리의 용이성

API는 두 시스템 간의 게이트웨이 역할을 합니다. API가 영향을 받지 않도록 각 시스템은 내부적으로 변경해야 합니다. 이렇게 하면 한 시스템의 향후 코드 변경이 다른 시스템에 영향을 미치지 않습니다.

 

 

REST API 보호

 

1. 인증 토큰

인증 토큰은 사용자에게 API 호출을 수행할 수 있는 권한을 부여하는 데 사용됩니다. 인증 토큰은 사용자가 자신이 누구인지 확인하고 해당 특정 API 호출에 대한 액세스 권한이 있는지 확인합니다. 예를 들어, 이메일 서버에 로그인하면 이메일 클라이언트는 보안 액세스를 위해 인증 토큰을 사용합니다.

 

2. API key

API 키는 API를 호출하는 프로그램 또는 애플리케이션을 확인합니다. 즉, 애플리케이션을 식별하고 애플리케이션에 특정 API 호출을 수행하는 데 필요한 액세스 권한이 있는지 확인합니다. API 키는 토큰만큼 안전하지 않지만 사용량에 대한 데이터를 수집하기 위해 API 모니터링을 허용합니다. 다른 웹 사이트를 방문할 때 브라우저 URL에서 긴 문자열과 숫자를 본 적이 있을 것입니다. 이 문자열은 웹 사이트가 내부 API 호출을 수행하는 데 사용하는 API 키입니다.

 

URI 설계 시 주의할 점

1) 슬래시 구분자(/)는 계층 관계를 나타내는 데 사용

2) URI 마지막 문자로 슬래시(/)를 포함하지 않는다.

3) 하이픈(-)은 URI 가독성을 높이는데 사용

4) 밑줄(_)은 URI에 사용하지 않는다.

5) URI 경로에는 소문자가 적합하다.

6) 파일 확장자는 URI에 포함시키지 않는다.

 

e.g.

restapi.example.com/sports/soccer/players/13

Collection  : 복수 : sports, player

Document  : 단수  : soccer과 13

 

URI은 개발자가 마음대로 작성할 수 있지만

REST한 표현을 위해서 콜렉션은 복수로 도큐먼트는 단수로 표현하자

 

콜렉션은 문서(도큐먼트)를 하위에 여럿가지고 있고,

문서(도큐먼트)는 단일페이지에 여러 객체를 가지고있다.

 

HTTP 응답 상태 코드 : 코드로 반환하면 뭔 상태인지 파악이 빠름

참고자료 :  https://www.moesif.com/blog/technical/api-design/Which-HTTP-Status-Code-To-Use-For-Every-CRUD-App/

 

 

 

REST API 참고자료 

URI 설계시 유의할점 : [URL 주소컨벤션]  https://blog.pumpkin-raccoon.com/115

URI, URL, URN의 차이 : https://velog.io/@minsu8834/What-is-Rest-Api-1%ED%83%84-URI-URL-URN%EC%9D%98-%EC%B0%A8%EC%9D%B4U

URI 의 범위 https://velog.io/@torang/URL%EA%B3%BC-URI%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

AWS : API란 무엇인가요? https://aws.amazon.com/ko/what-is/api/

'학습 내용 정리 > 기본' 카테고리의 다른 글

프론트 엔드 백엔드란?  (0) 2023.06.17
코딩 용어  (0) 2023.06.11
[중요!] 의사 전달 코드  (0) 2023.05.23
크롬의 개발자 도구, 디버깅  (1) 2023.05.16
HTTP와 HTTP 코드 별 의미  (1) 2023.05.12