서버와 통신, RESTful API

최다안·2022년 12월 20일
0

서버

목록 보기
6/8
post-thumbnail

📖 목차

  1. 서버와 통신

  2. RESTful API
    - RESTful API
    - HTTP Method와 CRUD
    - RESTful API 규칙

📌 서버와 통신

  • 클라이언트와 서버는 데이터를 주고받음
  • 패킷 단위로 데이터를 주고받음
  • 패킷헤더바디로 이뤄져있음
  • 헤더에 메타 데이터
  • 바디에 실제 주고받는 데이터
  • 바디의 데이터는 XML 또는 JSON 형태로 송수신
  • 클라이언트와 서버는 API 인터페이스를 사이에 두고 통신

📌 RESTful API

1) RESTful API

  • API : 통신 규약
  • RESTful API : "동사(HTTP Method)+목적어(URL)" 형태로 된 더 자세히 통일된 API

2) HTTP Method와 CRUD

HTTP Method는 RESTful API에서 동사에 해당되는 것

HTTP Method 종류
1. GET(Read) : 서버에게 받고자 하는 정보를 Requset_URI에 붙여 요청

  • path-variable => 요청하고 싶은 정보를 특정 짓는 것
  • query-string => 요청하고 싶은 정보에 대해 필터링하는 것
  1. POST(Create) : 생성 요청
  2. PUT(Update) : 덮어쓰기 수정, 회원정보중 비번 수정
    예) 회원정보에 수정된 비번 데이터만 남음
  3. PATCH(Update) : 부분수정, 회원정보중 비번 수정
    예) 비번만 수정됨
  4. DELETE(Delete) : DELETE 대신 PUT, PATCH 사용하여 삭제 기능 수행할 수 있음, 단 목적어(URL)에 수정인지 삭제인지 표시

3) RESTful API 규칙 [1]

  • 마지막이 /로 끝나면 안됨
  • 언더바(_) 대신 하이픈(-)
  • 소문자만
  • 동사 단어는 사용하지 말고 HTTP Method로 대체
  • 복수형 명사 사용
  • 파일 확장자 표지하지 않음
  • 리소스 관계 표시 [2]
  1. 서브리소스로 관계 표현하는 방법
    GET, users/{userId}/devices : 특정 사용자가 “갖는” 디바이스 목록
    ⇒ 일반적으로 소유 “has”의 관계를 묵시적으로 표현할 때 좋음
  2. 서브리소스에 관계를 명시하는 방법
    GET, /users/{userId}/likes/devices : 특정 사용자가 “좋아하는” 디바이스 목록
    ⇒ 관계의 명이 애매하거나 “구체적인 표현”이 필요할 때 사용한다.

※어떤 형태를 사용하더라도 문제는 없지만, 필요에 따라 적절한 방법으로 관계를 표현하면 됨



&링크모음
[1] RESTful API 규칙
[2] RESTful API 리소스 관계 표시

profile
https://github.com/DaanChoi

0개의 댓글