💡 REST는 아키텍처 스타일을 의미하고, RESTful은 해당 아키텍처 스타일을 따르는 웹 서비스를 의미하며, RESTful API는 RESTful 웹 서비스에서 사용되는 API를 의미합니다.
REST는 Representational State Transfer의 약자로, 웹 서비스를 구현하는 아키텍처 스타일 중 하나입니다. REST는 HTTP 프로토콜을 기반으로 하며, 클라이언트와 서버 간의 통신을 위한 인터페이스를 정의합니다.
REST는 자원을 표현하는 URI(Uniform Resource Identifier)와 HTTP 메소드(GET, POST, PUT, DELETE 등)를 사용하여 클라이언트가 서버의 자원에 접근할 수 있도록 합니다. 클라이언트는 URI를 사용하여 자원을 지정하고, HTTP 메소드를 사용하여 자원을 조작합니다.
REST는 상태를 관리하지 않으며, 요청 간에 상태 정보를 저장하지 않습니다. 대신, 클라이언트가 필요한 정보를 요청하고, 서버는 그에 대한 응답을 제공합니다. 이러한 REST의 특징으로 인해 서버의 확장성과 클라이언트와 서버의 독립성이 증가하고, 웹 서비스의 유지보수성이 향상됩니다.
URI 란 ❓
URI는 Uniform Resource Identifier의 약자로, 인터넷에서 특정 자원을 나타내는 유일한 식별자입니다. URI는 웹 브라우저에서 URL로 불리기도 합니다.
URI는 인터넷에서 자원을 고유하게 식별하는 데 사용됩니다. 웹 브라우저는 URI를 사용하여 특정 자원을 요청하고, 서버는 이에 대한 응답을 제공합니다. URI는 웹 브라우저를 비롯한 다양한 응용 프로그램에서 사용되며, 웹 서비스와 API를 구현하는 데 필수적인 개념입니다.
RESTful은 REST를 따르는 웹 서비스를 구현하는 방식 중 하나입니다. RESTful 웹 서비스는 REST의 원칙과 규칙을 따르며, 자원을 URI(Uniform Resource Identifier)로 표현하고, HTTP 메소드를 사용하여 자원을 조작합니다.
RESTful 웹 서비스에서는 HTTP GET, POST, PUT, DELETE 등의 메소드를 사용하여 클라이언트가 서버의 자원에 접근하고, 자원을 조작할 수 있습니다. 예를 들어, GET 메소드를 사용하여 URI를 통해 자원을 요청하고, 서버는 해당 자원을 반환합니다. POST 메소드를 사용하여 새로운 자원을 생성하고, PUT 메소드를 사용하여 자원을 수정하고, DELETE 메소드를 사용하여 자원을 삭제할 수 있습니다.
RESTful 웹 서비스는 URI를 통해 자원을 표현하기 때문에, URI의 구조를 잘 설계하는 것이 중요합니다. 또한, 자원의 표현 방식도 중요한데, 대부분 JSON 또는 XML 형식으로 표현됩니다.
RESTful 웹 서비스는 서버와 클라이언트 간의 의존성을 낮추고, 서로 다른 시스템 간의 통신을 용이하게 합니다. 또한, HTTP의 기본 기능을 사용하기 때문에, 클라이언트와 서버 간의 상호작용이 단순하고 직관적입니다.
RESTful API는 REST 아키텍처 스타일을 따르는 웹 API를 의미합니다. RESTful API는 자원을 URI로 표현하고, HTTP 메서드를 사용하여 자원을 조작하는 등의 REST 원칙을 따르는 API입니다.
RESTful API는 다양한 클라이언트(웹 브라우저, 모바일 앱 등)에서 호출할 수 있으며, 데이터를 XML, JSON 등의 형식으로 전송합니다. RESTful API를 사용하면 웹 서비스의 성능과 확장성을 향상시킬 수 있습니다. 또한, RESTful API는 웹 서비스와 클라이언트 간의 결합도를 낮추어서 웹 서비스를 변경하거나 업그레이드하는 데 용이합니다.
RESTful API는 HTTP 프로토콜의 메서드를 사용하여 자원을 다루기 때문에, CRUD(Create, Read, Update, Delete) 연산을 수행하기 위한 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용합니다. 이러한 HTTP 메서드와 URI를 조합하여 RESTful API를 설계하고 구현합니다.
API 란 ❓
API는 Application Programming Interface의 약자로, 응용 프로그램에서 서로 다른 구성 요소들간의 상호 작용을 가능하게 하는 인터페이스를 의미합니다. 즉, 소프트웨어나 웹 서비스가 제공하는 기능을 일부에서 호출하여 사용할 수 있게 하는 인터페이스를 말합니다.
API는 다양한 형태로 제공될 수 있으며, 일반적으로 RESTful API, SOAP API, GraphQL 등이 있습니다. 이 중 RESTful API는 가장 보편적으로 사용되며, 가장 많은 개발자들이 익숙한 형태의 API입니다.
URI는 자원을 나타내는 식별자입니다. 따라서, URI는 명사로 구성하는 것이 좋습니다. 예를 들어, /users와 같은 URI는 명사로 구성된 예입니다.
URI는 대소문자를 구분합니다. 따라서, URI는 소문자로 작성하는 것이 좋습니다. 예를 들어, /users와 /Users는 서로 다른 URI입니다.
URI에서는 단어를 하이픈(-)으로 구분하는 것이 가독성이 좋습니다. 예를 들어, /user-details와 같은 URI는 단어를 하이픈으로 구분한 예입니다.
HTTP 메서드는 다음과 같은 역할을 수행합니다.
RESTful API에서는 HTTP 상태 코드를 사용하여 요청의 성공 여부를 알려줍니다. 예를 들어, 200 상태 코드는 요청이 성공했음을 의미하고, 404 상태 코드는 요청한 자원이 없음을 의미합니다. 따라서, 적절한 상태 코드를 사용하여 API 사용자에게 요청의 결과를 전달하는 것이 좋습니다.
RESTful API에서는 JSON 형식으로 데이터를 전달하는 것이 일반적입니다. 따라서, 응답 데이터를 JSON 형식으로 전달하는 것이 좋습니다. 이렇게 하면, API 사용자가 데이터를 쉽게 이해하고 사용할 수 있습니다.
JSON 형식으로 데이터를 전달하는 것이 많이 사용되는 이유 ❓
1. 가볍고 빠르다.
JSON은 텍스트 기반의 데이터 교환 형식이기 때문에 가볍고 빠릅니다. 또한, JSON은 다른 데이터 형식과 호환성이 높아서 다양한 플랫폼에서 사용 가능합니다.
2. 가독성이 높다.
JSON은 인간이 읽기 쉬운 형식으로 데이터를 전달할 수 있습니다. 그렇기 때문에 JSON을 사용하면, 데이터를 이해하기 쉬워지며, 디버깅이나 테스트를 할 때도 편리합니다.
3. 구조화된 데이터를 전달할 수 있다.
JSON은 객체와 배열을 포함하여 구조화된 데이터를 전달할 수 있습니다. 이렇게 구조화된 데이터를 전달하면, API 사용자는 데이터를 더 쉽게 이해하고 사용할 수 있습니다.
4. 다양한 언어에서 지원한다.
JSON은 대부분의 프로그래밍 언어에서 지원합니다. 따라서, 다양한 클라이언트와 서버 간의 데이터 교환에 적합합니다.
현재 날씨를 불러올 수 있는 API 👉🏻 https://openweathermap.org/current
// weather = Clouds, Clear, Thunderstorm, Drizzle, Rain, Snow, Atmosphere
function onGeoOk(position) {
const lat = position.coords.latitude;
const lon = position.coords.longitude;
console.log("You live in", lat, lon);
const url = `https://api.openweathermap.org/data/2.5/weather?lat=${lat}&lon=${lon}&appid=${API_KEY}&units=metric`;
fetch(url).then(response => response.json()).then(data => {
console.log(`weather = ${data.weather[0].main}`);
console.log(`temp = ${data.main.temp}°`);
});
}
function onGeoError() {
alert("Can't find you. No weather for you.");
}
navigator.geolocation.getCurrentPosition(onGeoOk, onGeoError);