REST,RESTful, REST API

황의혁·2023년 4월 13일
0

REST란?
클라이언트와 서버의 통신 방식
uri(Uniform Resource Identifier)와 HTTP를 이용한, 통신 목적의 아 키텍처 스타일(유형)
-uri란 문서, 그림, 영상 등의 자원 식별용 이름(경로)
-아키텍처 스타일 : 아키텍처(구조)의 종류(유형, 스타일, 타입).
클라이언트/서버
저장소
파이프/필터
REST

RESTful
REST가 적용된 시스템.
REST API를 제공하는 시스템은 RESTful이다.
그런데 더 정확하게 표현된 REST라는 개념은 다음의 6가지 조건을 만족해야 한다.

1. 일관된 인터페이스(Uniform interface)
	uri 사용, http 메소드 사용 등의 지정된 인터페이스를 준수한다.
2. 클라이언트/서버(Client-Server)
	클라이언트는 서버에 요청(request) 메세지를 전송하고
    서버는 요청에대한 응답(response) 메세지를 전송한다.
3. 비연결성(Statelessness)
	세션 등 이전 상황(문맥) 없이도 통신할 수 있다.
4. 캐시 가능(Cacheable)
	서버의 응답 메세지는 캐싱(저장 후 재사용)될 수 있다.
5. 계층화된 시스템(Layered system)
	계층별로 기능이 분리된다.
    그러므로 중간 계층의 기능(로드 벨런싱, 서버 증설 등)이 변경되어도 통신		에 영향을 주지 않는다.
6. 주문형 코드(code on demand) (선택사항)
	손쉬운 데이터 처리를 위해 서버는 클라이언트에서 실행될 스크립트를 전송			할 수 있다.
    
    

REST는 아키텍처 스타일이다.
이는 아키텍처 제작 시 사용되는 가이드(지침) 정도의 의미로 사용되며 명확히 준수해야할 표준은 없다.
겉으로는 REST를 표방하고 있으나 특히 "1. 일관된 인터페이스" 조건을 준수하지 않아 REST가 아닌 경우가 많다.

    -----
    
    

ful 이란 의미는 '스럽다' '긍정의 의미'
'Rest' + 'ful' 'REST ~스럽다'

RESTful api란 '사람이 인지하기 쉽게 표현한다.'
그럼 REST란 건 뭐야?
(Represnetational State Transfer)
어떠한 상태 표현을 주고 받는다.
HTTP -> Transfer Protocol 주고 받는 약속
어떤 자원에 대해서 CRUD하는거다.
HTTP / URI/L / 주소 / 자원

DB상에서 일어진다.
{CRUD -> create/read/update/delete
C => POST
R => GET
U => PUT
D => DELETE} 이것들은 http에 정의가 되어있다.
http protocal을 가지고 자원을 CRUD할 수 있다.
조작, 핸들링을 할 수가 있다.

이런 상황을 Open API 이런 상황에서 CRUD를 맵핑을 하는 구조로 외부로 open해줬을때 그것을 RESTful API라고 말할수가 있다.

왜 RESTful인가..?
이전에 soap이라고 있는데 클라이언트간의 서버와의 통신이 필요했는데 그 규약이 필요했는데 웹 서비스에서 soap를 사용, 근데 너무 복잡했다.
RESTful은 Http를 이용한다는것은 표준 프로토콜

---- chat gpt----

REST / RESTful의 차이점
REST는 웹 서비스를 만들 때 사용할 일련의 제약 조건을 정의하는 아키텍쳐 스타일.
반면 RESTful은 이러한 원칙을 따르는 웹 서비스를 설명하는 데 사용되는 용어.

RESTful로 간주되려면 웹 서비스가 HTTP메서드(GET,POST,PUT,DELETE)를 사용하여서 CRUD(만들기,읽기,업데이트,삭제)작업을 수행하여야하고, URI를 사용하여 리소스를 식별하고, 상태 비저장 클라이언트 - 서버 모델 및 구성 요소간의 인터페이스를 사용해야한다.

따라서 REST는 웹 서비스를 설계를 위한 일련의 원칙을 정의하지만, 이러한 원칙을 준수하는 웹 서비스는 RESTful로 간주됩니다.


REST는 어떤 형식을 나타내는 말이다. ( 어떤 형식이란 무엇인가? )
REST API는 그 형식을 따라는 API이다.

REST는 HTTP에서 필요한 자원에 접근할 때 웹의 장점을 최대한 활용하기 위한 아키텍처

REST API의 구성 요소
https://www.googleapis.com/books/v1/volumes?q=search+terms

  1. HTTP Method
    GET - 데이터 조회
    POST - 새로운 데이터 추가
    PUT - 데이터 전체 수정
    PATCH - 데이터 일부 수정
    DELETE - 정보 삭제
    이러한 것들을 통하여 우리가 url에서 어떤 것을 진행하고 싶은지 알 수 있다.

  2. URL - 데이터 접근
    books와 volumes만 보더라도 어떠한 데이터에 접근해야되는지 알 수 있다.

  3. Representation - 자원의 표현
    파라미터부분을 보더라도 어떤 내용을 기술해야하는지 알 수 있습니다.

    잘만들어진 api는 url만 보더라도 어떠한 내용에 대한 것인지 잘 알 수 있다.

요약===
REST API

  • 정의

  • 구성요소

  • URL 설계규칙

  • 키 발급

  • developer
    console


    chat gpt

    "rest"는 Representational State Transfer의 약자로, 웹 서비스의 아키텍처 스타일 중 하나를 나타내는 용어입니다. REST는 클라이언트와 서버 간의 통신 방식을 정의하며, HTTP 프로토콜을 기반으로합니다. RESTful API를 사용하여 데이터를 전송하는 웹 어플리케이션을 구축하는 것이 일반적입니다. REST는 인터넷에서 자원을 표현하고 그 자원에 대한 상태를 전송하는 방법을 규정합니다. 이를 위해서는 URL을 사용하여 자원을 식별하고 HTTP 메서드를 사용하여 자원에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행합니다. 따라서 RESTful 서비스를 구현하기 위해서는 HTTP 프로토콜과 웹 어플리케이션 아키텍처에 대한 이해가 필요합니다.

    • 웹 서비스의 아키텍쳐 스타일 -> REST, SOAP, GraphQL, gPRC
    RESTful API는 Representational State Transfer(REST) 아키텍처 스타일을 따르는 웹 서비스의 API를 말합니다. 즉, 클라이언트와 서버 간의 통신을 HTTP 프로토콜을 기반으로 하며, RESTful 웹 서비스의 자원에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행하는 API를 제공합니다.

RESTful API는 URL을 사용하여 자원을 식별하고, HTTP 메서드를 사용하여 자원에 대한 작업을 지정합니다. 예를 들어, 클라이언트가 특정 게시물을 생성하려면 HTTP POST 메서드를 사용하고, 게시물을 수정하려면 HTTP PUT 또는 PATCH 메서드를 사용합니다. 또한, RESTful API는 JSON 또는 XML 형식의 데이터를 주고받으며, 자원에 대한 상태 정보를 전달하기 위해 HTTP 상태 코드를 사용합니다.

RESTful API는 단순하고 직관적인 디자인으로 인해 개발자들에게 인기가 있으며, 웹 서비스의 확장성과 유연성을 제공합니다. 이러한 이유로 RESTful API는 현재 많은 웹 서비스에서 사용되고 있습니다.

차이점
RESTful API와 REST API는 비슷한 개념이지만, 약간의 차이가 있습니다.

REST API는 Representational State Transfer(REST) 아키텍처 스타일을 따르는 API를 의미합니다. REST API는 자원을 표현하고, 해당 자원에 대한 상태를 주고받는 데에 HTTP 메서드를 사용합니다. 이러한 REST API는 클라이언트와 서버 간의 통신을 위한 아키텍처를 제공하는 것입니다.

반면에, RESTful API는 REST API를 따르면서도 REST 아키텍처의 제약 조건을 따르는 API를 의미합니다. RESTful API는 자원을 표현하는 URI(Uniform Resource Identifier)를 사용하고, HTTP 메서드를 사용하여 자원에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행합니다. 또한, RESTful API는 URI를 사용하여 자원을 식별하고, JSON 또는 XML 형식의 데이터를 주고받습니다.

따라서, RESTful API는 REST API를 더욱 엄격하게 따르는 것으로 볼 수 있습니다. RESTful API는 자원 중심의 디자인과 웹 서비스의 확장성 및 유연성을 보장하기 위해 다양한 제약 조건을 준수합니다.

RESTful API와 REST API는 비슷한 개념이지만, 약간의 차이가 있습니다.

REST API는 Representational State Transfer(REST) 아키텍처 스타일을 따르는 API를 의미합니다. REST API는 자원을 표현하고, 해당 자원에 대한 상태를 주고받는 데에 HTTP 메서드를 사용합니다. 이러한 REST API는 클라이언트와 서버 간의 통신을 위한 아키텍처를 제공하는 것입니다.

반면에, RESTful API는 REST API를 따르면서도 REST 아키텍처의 제약 조건을 따르는 API를 의미합니다. RESTful API는 자원을 표현하는 URI(Uniform Resource Identifier)를 사용하고, HTTP 메서드를 사용하여 자원에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행합니다. 또한, RESTful API는 URI를 사용하여 자원을 식별하고, JSON 또는 XML 형식의 데이터를 주고받습니다.

따라서, RESTful API는 REST API를 더욱 엄격하게 따르는 것으로 볼 수 있습니다. RESTful API는 자원 중심의 디자인과 웹 서비스의 확장성 및 유연성을 보장하기 위해 다양한 제약 조건을 준수합니다.

참조 : https://www.youtube.com/watch?v=SlZwegFgVe4
https://www.youtube.com/watch?v=CBXIjJOHerU
https://www.youtube.com/watch?v=X4DezEXbc5o&list=WL&index=71

profile
기억보단 기록, 반복

0개의 댓글