세모이
개발 계발
세모이
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • 알고리즘 (1)
    • 자바스크립트 (29)
    • 리액트 (10)
    • HTML&CSS (2)
    • TIL (26)
    • 파이썬 (8)
    • Dev (1)
    • 데일리 (3)
      • 2023 (3)
    • 에러일기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바스크립트 함수와 일급 객체
  • 자바스크립트 strict mode
  • 옵셔널 체이닝
  • 자바스크립트 프로퍼티 어트리뷰트
  • const let 키워드와 블록레벨 스코프
  • 모던 자바스크립트
  • 자바스크립트 프로토타입
  • 개발자 도구 Network
  • 함수
  • 자바스크립트
  • &&연산자
  • 리액트 key
  • 시멘틱 태그
  • 자바스크립트 전역 변수의 문제점
  • 모던 자바스크립트 deep dive
  • 자바스크립트 깊은 복사 얕은 복사
  • 모던 자바스크립트 deep deive
  • html 신기한 태그
  • 자바스크립트 생성자 함수에 의한 객체 생성
  • 자바스크립트 빌트인 객체

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
세모이

개발 계발

TIL

[TIL] RESTful API

2022. 1. 26. 20:06
반응형

RESTful API

REST(Representational State Transfer)

웹상에서 사용되는 여러 리소스를 HTTP URI로 표현하고 그 리소스에 대한 행위를 HTTP Method로 정의하는 방식. 즉, 리소스(HTTP URI로 정의된)를 어떻게 한다(HTTP Method + Payload)를 구조적으로 깔끔하게 표현


RESTful API란?

REST 특징을 지키면서 API를 제공한다는 의미

장점 : Self-descriptiveness - RESTful API는 그 자체만으로 API의 목적이 쉽게 이해된다.

단점 : 표준 규약이 없어, 안티패턴으로 작성되는 경우가 흔하다

안티패턴 : 실제 많이 사용되는 패턴이지만 비효율적이거나 비생산적인 패턴


URI / HTTP Method / Payload

URI(Uniform Resource Identifier)

  • 해당 사이트의 특정 자원의 위치를 나타내는 유일한 주소

HTTP Method

HTTP request가 의도하는 action을 정의한 것

Payload

HTTP request에서 server로 보내는 데이터(body)

Request

GET https://10.58.4.1/products

method protocol Host Resource

Response

200 ok

{

name : 'gildong'
nation : 'korea'

}


RESTful API 설계 규칙

1. URI 정보는 명확하게 표현해야 한다.

2. resource는 명사는 사용한다.

ex) GET /user/1 -> GET /users/1 (단수보다는 복수)

3. Resource에 대한 행위를 HTTP Method(GET, POST, DELETE, PUT)로 표현한다.

4. URI에 HTTP Method가 포함되서는 안된다.

ex) GET delete/user/1 -> DELETE /users/1

5. URI에 동사가 포함되서는 안된다.

ex) GET /user/show/1 GET /users/1

ex) POST inser/user/2 -> POST /users/2

6. resource 사이에 연관 관계가 있는 경우

/리소스/고유ID/관계 있는 리소스

ex) GET /users/{user_id}/profile

7. 파일의 경우 Payload의 포맷을 나타내기 위한 파일 확장자를 URI에 포함시키지 않는다

ex) GET user/1/profile-photo.jpg(x)

ex) GET user/1/profile-photo(이때, payload의 포맷은 headers에 accept를 사용한다)

8. URI는 / 구분자를 사용하여 자원의 계층 관계를 나타내는데 사용한다

9. URI 마지막 문자로 /를 포함하지 않는다.

10. 불가피하게 URI가 길어지는 경우 -를 사용하여 가독성을 높인다

11. _는 사용하지 않는다.

12. URI 경로에는 대문자 사용을 피하도록 규정하고 있다.

반응형

'TIL' 카테고리의 다른 글

라우팅  (0) 2022.02.13
자바스크립트 간단 요약 ver2  (0) 2022.01.29
[TIL] 리액트에서 FontAwesome 사용하기  (0) 2022.01.26
[TIL] HTML 신기한 태그  (0) 2022.01.18
[TIL] 인증 & 인가  (0) 2022.01.17
    'TIL' 카테고리의 다른 글
    • 라우팅
    • 자바스크립트 간단 요약 ver2
    • [TIL] 리액트에서 FontAwesome 사용하기
    • [TIL] HTML 신기한 태그
    세모이
    세모이
    개발 공부!

    티스토리툴바