REST API

미누·2023년 11월 8일
0

web

목록 보기
2/2

복습하며 채워나가는 포스트 시리즈!

REST API?

HTTP 요청 시 어떤 URI에 어떤 method를 사용할지에 대한 개발자 간의 약속

API?

Apllication Programming Interface의 약자로, 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어에서 제공하는 기능을 제어할 수 있게 해주는 인터페이스로 나타낸 것
이는 어플리케이션 간의 지정된 형식으로 요청과 응답을 할 수 있도록 연결하는 것!

REST?

Representational State Transfer의 약자로, API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처

이는 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로
각 요청이 어떤 정보나 동작을 위한 것인지 그 모습 자체만으로 쉽게 추론 가능
1. HTTP URL 을 통해서 자원(Resource)을 명시하고
2. HTTP Method(GET, POST, PUT, DELETE)를 통해
3. 해당 자원(URL)에 대한 CRUD를 적용하는 것을 의미

REST API의 특징

  1. Stateless(무상태) - 각 요청이 모두 독립적
  2. Layered System(계층화) - MVC 등과 같은 계층 구조
  3. Cacheable(캐시 가능성) - 캐싱 사용 여부 제어
  4. Uniform Interface(균일한 인터페이스) - 균일한 API Resource
    4-1. 리소스가 URI로 식별
    4-2. 표현을 통한 자원 조작 - eg. HTTP Accept 헤더
    4-3. 자기 서술적인 메시지 - 클라이언트가 리소스를 이해하고 조치를 취하는 데 필요한 모든 데이터가 포함
    4-4. HATEOAS (hypermedia as the engine of application state) - 애플리케이션의 상태가 Hyperlink를 이용해 전이

REST API URI RULES

  1. 소문자 사용
  2. 언더바(_) 대신 하이폰(-)
  3. 행위는 Method를 사용 (=동사 지양)
  4. 명사는 복수형을 권장
  5. 파일 확장자는 Content-Type과 Accept 헤더를 활용

참고 - https://aws.amazon.com/ko/what-is/restful-api/
참고 - https://blog.dreamfactory.com/best-practices-for-naming-rest-api-endpoints/
참고 - https://dev-cool.tistory.com/32
참고 - https://jaeseongdev.github.io/development/2021/06/15/REST%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EC%9B%90%EC%B9%99-6%EA%B0%80%EC%A7%80/
이미지 - https://www.youtube.com/watch?v=C7yhysF_wAg

profile
Dev Notes, with bit of JS?

0개의 댓글