RESTful API

그냥차차·2024년 6월 25일

개발작 일상

목록 보기
7/8
post-thumbnail

0. RESTful API

  • 머리로는 알고있고, 사용도해보았던 Swagger에 대해 더 자세히 알아보자

1. REST

ㄱ. REST란

  • REST(Representational State Transfer)는 네트워크 기반 소프트웨어 아키텍처 스타일
  • HTTP 프로토콜을 통해 API를 설계하기위한 스타일
  • 자원 : REST에서는 모든 것을 리소스로 간주함
    • 자원을 표현하는 방식에는 URI가 있음
  • 행위 : 자윈에 대한 행위로 자원을 표현하기 위한 행위
    • HTTP 요청메소드(GET, POST, PUT, PATCH, DELETE)가 있음
  • 표현 : 자원에 대한 구체적인 내용이고 표현방법으로는 페이로드가 있음
    • {status : 200, data:{name:"chacha"}}
  • URI는 리소스를 식별하는데 사용됨
    • 예를 들어, /users/123는 ID가 123인 사용자를 나타내는 URI
    • GET /users/123는 ID가 123인 사용자의 정보를 조회
    • POST /users는 새로운 사용자를 생성
    • PUT /users/123는 ID가 123인 사용자의 정보를 업데이트
    • DELETE /users/123는 ID가 123인 사용자를 삭제

2. API

ㄱ.API란

  • API는 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘

3. REST API, REST ful API

ㄱ. REST API란

  • REST 스타일을 준수해서 만든 API자
  • REST API와 REST Ful API를 구분지어 사용하지는 않음

ㄴ. REST Ful API란

  • REST의 설계규칙을 잘 지켜서 설계된 API
  • 즉 REST ful API의 주소만 보고도 어떤 API인지 알수 있어야함
    • 예를 들면, GET/users , POST/users 등

ㄷ. 설계원칙

    1. URI는 리소스를 표현
    1. 자원에 대한 행위는 HTTP 요청 메소드로 표현해야함

ㄹ. 네이밍 컨벤션

    1. 동사가 아닌 명사를 사용할것
    • 단, 컨트롤 자원을 의미하는건 예외로 동사처리가 가능
    1. 행위는 URL에 포함시키지 않아야함
    • 예를 들면 POST/users/post{id}
    1. 소문자를 사용하고, 언더바(_)대신, 대시(-)를 사용해야하며, 파일의 확장자(png)와 슬래쉬(/)도 사용하지않아야함

4. 클라이언트 요청

  • 예시코드 :
    • headers : 요청의 성격이나 클라이언트에 대한 정보, 요청을 처리하는 방식등
    • Body : 보통 json이나 xml형태로 주고받음
fetch("url/exchanges/{id}",{
method:"POST",
headers:{
ConTent-Type:"application/json",
},
body:{
name :"테스트",
userName:"chacha",
}})

5. 서버 응답

  • Status Code : 모든 HTTP의 응답은 아래 상태코드를 포함함
    • 2xx : 성공적인 요청
    • 3xx : 리디렉션을 나타냄
    • 4xx : 클라이언트측 오류일때(아이디, 패스워드, 인증 오류등)
    • 5xx : 서버측 오류일때(서버가 닫혀있을때 등)
profile
개발작

0개의 댓글