2020.코딩일지

[HTTP/네트워크] REST API [BEB 6th] 본문

WebServer&DB&CTI

[HTTP/네트워크] REST API [BEB 6th]

개발하는라푼젤 2022. 7. 29. 16:01
728x90
코드스테이츠 블록체인 부트캠프 6기 

 

웹 어플리케이션에서는 HTTP메소드를 이용해 서버와 통신한다. (GET으로 요청하고 POST로 새로운글,데이터전송 DELETE로 삭제)

REST API란, 2개이상의 서비스가 인터넷을 통해 정보를 교환할때 사용하는 인터페이스. 

요청과 응답을 할 때, '제대로 보내고 받을 수 있는' 일종의 규약.

데이터를 주고받기위한 규약. 약속된 HTTP프로토콜을 사용한다. 

 

REST(Representational State Transfer)

로이필딩 박사학위 논문에서 웹(http)의 장점을 최대한 활용할 수 있는 아키텍쳐로 소개 되었다.

REST API는

웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP프로토콜을 통해 요청과 응답을 정의하는 방식을 말한다.

 

1단계) 개별 리소스와 통신 준수

  • 같은 POST여도 적절한 엔드포인트를 각기 구별하자!
    어떤 행위에 대한 단어 사용은 지양하고, 리소스에 집중해 명사 형태의 단어로 작성하는 것이 바람직하다.
  • 응답res할때, 성공/실패 여부를 반환하자

2단계) HTTP 메소드 원칙 준수 MDN HTTP request methods

  • CRUD에 맞게 적절한 HTTP메소드를 사용하자.
    조회 : GET(서버데이터변화시키지않는요청)
    (GET메소드는 body를 가지지 않기 때문에, query parameter를 사용하여 필요한 리소스를 전달한다)
    생성: POST 요청에 의한 응답반환이 어떻게 되는가?*도 중요 (멱등성이 있는)PUT과 구분해서 사용하기 
      응답반환: `201 Created`  이런거

3단계) 하이퍼미디어 컨트롤 적용HATEOAS(Hypertext As The Engine Of Application State)

  • 2단계와 비슷하지만 응답에서 리소스의 URI를 포함한 링크요소를 삽입하여 작성.
    응답 냐에 새로운 링크를 넣어 새로운 기능에 접근할 수 있도록 하는것! *중요포인트!

 

 

 

5가지의 기본적인 REST API 디자인 가이드

호주 정부 API 작성 가이드

구글 API 작성 가이드

MS의 REST API가이드라인

 

 

 

https://waytogo-anne.tistory.com/234

 

[HTTP/네트워크] HTTP Messages,Requests,Responses [BEB 6th]018일차

코드스테이츠 블록체인 부트캠프 6기 2Tier Architecture 클라이언트: 리소스를 사용하는 앱 (결제기능, 상품조회기능 등) 서버 : 리소스가 존재하는 곳 (상품목록) + DB 추가시 (3Tier) 요청이 있어야 응

waytogo-anne.tistory.com


  

 

 

 

 

 

💃Achievemenrt Goals

🤸‍♀️Advanced Challenge

🏃‍♀️Futher Study

🤖검색키워드 (오끝에서 3번째 컬러)

Comments