본문 바로가기
  • Welcome!
Creo Reference Room/Windchill

Rest API

by ToolBOX01 2024. 6. 24.
반응형

□ REST(Representational State Transfer)

REST(Representational State Transfer)는 웹 서비스 설계를 위한 아키텍처 패턴입니다. 이 아키텍처에서는 서버의 비즈니스 객체를 웹 리소스로 나타냅니다. 클라이언트는 HTTP 동사(GET, POST, PATCH, PUT, DELETE)를 사용하여 이러한 웹 리소스에 작업을 수행합니다.

[웹 서비스 설계를 위한 아키텍처 패턴]

웹 서비스는 인터넷을 통해 데이터를 주고받는 시스템입니다. 이를 효과적으로 설계하고 관리하기 
위해서는 일정한 규칙이나 방법이 필요합니다. 아키텍처 패턴은 이런 웹 서비스를 만들 때 따라야 할 
설계 방법이나 규칙을 의미합니다.

비유를 들어 설명하면, 웹 서비스를 만드는 것은 집을 짓는 것과 비슷합니다. 아키텍처 패턴은 집을 
지을 때 사용하는 설계도나 건축 방식 같은 것입니다. 이를 통해 모든 집(웹 서비스)이 일정한 규칙에 
따라 지어지므로, 더 견고하고 효율적인 집을 지을 수 있습니다.


쉽게 말해, REST는 웹 서비스를 설계하는 방법 중 하나로, 서버의 데이터나 기능을 웹 주소(URL)로 표현합니다. 클라이언트(예: 웹 브라우저나 앱)는 이 웹 주소를 통해 서버의 데이터를 조회하거나 변경할 수 있습니다.

  • GET: 서버의 데이터를 조회합니다. (예: 블로그 글 목록 보기)
  • POST: 서버에 새로운 데이터를 추가합니다. (예: 새로운 블로그 글 작성)
  • PATCH: 서버의 데이터를 일부 수정합니다. (예: 블로그 글의 일부 내용 수정)
  • PUT: 서버의 데이터를 전체적으로 수정합니다. (예: 블로그 글 전체 수정)
  • DELETE: 서버의 데이터를 삭제합니다. (예: 블로그 글 삭제)

이렇게 REST 아키텍처를 사용하면, 웹 서비스가 단순하고 직관적으로 설계되어 클라이언트와 서버 간의 상호작용이 쉬워집니다.

예를 들어, 부품(Parts)을 위한 RESTful 웹 서비스가 있다고 해봅시다. 이 서비스는 `/Parts`라는 웹 리소스를 노출합니다. 클라이언트가 이 웹 리소스를 이용해 부품 목록을 얻거나 새로운 부품을 추가할 수 있습니다.

  • 부품 목록을 얻으려면 클라이언트는 `/Parts`에 HTTP GET 요청을 보냅니다. 이렇게 하면 서버가 부품 목록을 반환합니다.
  • 새로운 부품을 만들려면 클라이언트는 `/Parts`에 HTTP POST 요청을 보냅니다. 이 때 필요한 부품의 속성값을 요청의 본문(payload)에 포함시켜 서버에 보냅니다. 그러면 서버가 새로운 부품을 생성합니다.

쉽게 말해, 클라이언트가 부품 목록을 보기 위해서는 `/Parts` 주소에 "보여줘!"(GET)라고 요청을 보내고, 새로운 부품을 추가하기 위해서는 같은 주소에 "이거 추가해줘!"(POST)라고 요청하면서 필요한 정보를 함께 보내는 것입니다.

 

Windchill REST Services

## REST 웹 서비스, 쉽게 이해하기

REST 웹 서비스는 인터넷에서 서로 다른 시스템들이 데이터를 주고받는 방식을 규정하는 일종의 규칙집이라고 생각하면 됩니다. 마치 여러 사람들이 서로 편지를 주고받기 위해 우체국을 이용하는 것처럼, REST 웹 서비스는 서로 다른 시스템들이 HTTP라는 우편 시스템을 이용하여 데이터를 주고받도록 돕습니다.

REST 웹 서비스의 핵심은 다음과 같습니다.

  • 쉽게 사용 가능한 인터페이스: REST 웹 서비스는 매우 간단하고 직관적인 인터페이스를 제공합니다. GET, POST, PUT, DELETE와 같은 몇 가지 기본적인 HTTP 메서드를 사용하여 데이터를 요청하고 조작할 수 있습니다.
  • 무상태: REST 웹 서비스는 서버가 이전 요청을 기억하지 않고 각 요청을 독립적으로 처리하도록 설계되었습니다. 이는 시스템의 유연성과 확장성을 높여줍니다.
  • 자원 중심: REST 웹 서비스는 모든 데이터를 자원이라는 개념으로 표현합니다. 각 자원은 고유한 식별자를 가지고 있으며, HTTP 메서드를 사용하여 조작될 수 있습니다.
  • 계층화된 시스템: REST 웹 서비스는 계층화된 시스템으로 구성되어 있어 여러 시스템이 서로 협력하여 데이터를 주고받을 수 있도록 합니다.

REST 웹 서비스의 장점은 다음과 같습니다.

  • 간단하고 사용하기 쉬움:REST 웹 서비스는 매우 간단하고 직관적인 인터페이스를 제공하여 개발과 사용이 쉽습니다.
  • 유연성과 확장성: REST 웹 서비스는 무상태 설계를 통해 시스템의 유연성과 확장성을 높여줍니다.
  • 다양한 시스템과의 호환성: REST 웹 서비스는 표준적인 HTTP 프로토콜을 사용하므로 다양한 시스템과 호환됩니다.

REST 웹 서비스는 다음과 같은 경우에 유용하게 사용됩니다.

  • 웹 기반 애플리케이션: REST 웹 서비스는 웹 기반 애플리케이션 간의 데이터 교환에 매우 유용합니다.
  • 모바일 애플리케이션: REST 웹 서비스는 모바일 애플리케이션에서 백엔드 서버와 데이터를 주고받는 데 사용할 수 있습니다.
  • IoT(사물 인터넷) 기기: REST 웹 서비스는 IoT 기기에서 데이터를 수집하고 제어하는 데 사용할 수 있습니다.

REST 웹 서비스는 인터넷 시스템을 구축하고 연결하는 데 매우 강력하고 유연한 방법을 제공합니다. 

REST 웹 서비스  예시:

* 온라인 쇼핑몰에서 상품 목록을 보려면 쇼핑몰 웹사이트는 REST 웹 서비스를 통해 서버에 GET 요청을 보내 상품 데이터를 가져옵니다.
* 사용자가 쇼핑몰에서 상품을 구매하면 쇼핑몰 웹사이트는 REST 웹 서비스를 통해 서버에 POST 요청을 보내 주문 데이터를 전송합니다.

- Windchill REST Services- 

Windchill REST Services는 개발자들이 Windchill에서 OData 서비스를 설정할 수 있게 해주는 모듈입니다. 이 모듈은 Windchill 버전과는 독립적으로 자체적인 출시 주기를 가집니다. Windchill 11.0 M030 CPS06 버전부터 이 모듈은 Windchill CPS에 함께 제공됩니다. 이 모듈은 프레임워크와 PTC 도메인 세트로 구성됩니다. 도메인들은 프레임워크에서 제공하는 기능을 사용하여 설정됩니다.

쉽게 말해, Windchill REST Services는 Windchill 소프트웨어에서 데이터를 더 쉽게 주고받을 수 있도록 도와주는 추가 기능입니다. 이 기능은 Windchill의 다른 업데이트와 별도로 업데이트되며, 특정 버전부터는 Windchill에 기본적으로 포함됩니다. 이 모듈은 데이터 구조를 설정할 수 있는 틀과 여러 데이터 영역으로 이루어져 있고, 개발자들은 이 틀을 사용해 필요한 데이터 영역을 설정할 수 있습니다.

1. Framework

프레임워크는 설정 파일 세트를 읽도록 설계되었습니다. 이러한 설정 파일에는 Windchill에서 OData 서비스를 설정하는 데 필요한 정보가 포함되어 있습니다. Windchill REST Services에서 OData 서비스는 도메인이라고 합니다. 도메인은 Windchill 객체 유형과 객체 컬렉션을 OData 엔티티 유형과 엔티티 세트로 노출합니다.

2. Domain

Windchill REST Services는 Windchill의 여러 기능을 작은 부분으로 나누어 RESTful 클라이언트가 쉽게 접근할 수 있게 합니다. 각 도메인은 Windchill의 특정 기능에 대한 접근을 제공합니다. 예를 들어, 부품 관리, 문서 관리, 프로젝트 관리 등 각기 다른 기능 영역을 나누어 설정할 수 있습니다. 이를 통해 클라이언트는 필요한 기능에만 접근하여 데이터를 주고받을 수 있습니다.


□ OData

OData (Open Data Protocol) 는 RESTful 웹 서비스를 만들고 사용하기 위한 표준 규칙입니다. RESTful 웹 서비스는 이미 배운 것처럼 서로 다른 시스템들이 HTTP 메시지를 주고받아 데이터를 공유하는 방식이죠. OData는 이 RESTful 웹 서비스를 만드는 것을 더욱 쉽게 해주는 도구라고 생각하면 됩니다. OData는 HTTP 메시지를 사용해 웹 클라이언트 간의 데이터 교환을 가능하게 합니다.

OData가 정하는 핵심 규칙은 다음과 같습니다.

  • 데이터 모델 공개: OData를 사용하는 웹 서비스는 데이터가 어떻게 구성되어 있는지 정확하게 설명하는 문서(Entity Data Model, EDM)를 반드시 공개해야 합니다. 이 문서는 마치 데이터베이스의 스키마와 비슷한 개념입니다.
  • 주소 정해주기: OData는 데이터에 해당하는 주소를 만드는 방법을 규칙으로 정해놓습니다. 이 주소를 이용하여 클라이언트(데이터를 요청하는 프로그램)는 원하는 데이터를 손쉽게 찾을 수 있습니다.
  • HTTP 메서드 활용: OData는 데이터 추가(POST), 조회(GET), 수정(PATCH, PUT), 삭제(DELETE) 등과 같은 작업을 위해 표준적인 HTTP 메서드를 사용하도록 요구합니다.
  • 간편한 요청: OData는 클라이언트가 서버와 데이터를 주고받을 때 필요한 요청 메시지 형식을 간편하게 정의합니다.
    클라이언트가 요청할 때 사용할 수 있는 헤더와 쿼리 매개변수를 지원합니다.

쉽게 말해, OData는 웹 서비스가 데이터를 주고받는 규칙을 정한 것입니다. 이 규칙을 따르면, 클라이언트는 데이터를 쉽게 찾고, 추가하고, 수정하고, 삭제할 수 있습니다. 그리고 데이터를 주고받을 때 필요한 형식과 방법을 정해 모든 클라이언트와 서버가 이를 일관되게 사용할 수 있도록 합니다.

예시

예를 들어, 도서관 웹 사이트에서 책 정보를 다루는 OData 웹 서비스를 생각해보세요. 이 서비스는 다음과 같은 방식으로 동작할 수 있습니다.

  • 도서관 웹 사이트는 OData 규칙에 따라 책 제목, 저자, 출판일 등과 같은 데이터 모델(EDM)을 공개합니다.
  • 웹 사이트 사용자가 특정 책 제목을 검색하고 싶다면, OData 주소 규칙에 따라 만들어진 주소를 이용하여 해당 책 정보를 요청하는 GET 메서드를 보냅니다.
  • 서버는 사용자의 요청을 받고 해당 책 정보를 반환합니다.

OData를 사용하면 RESTful 웹 서비스를 만드는 과정이 간소화되고, 서로 다른 시스템 간의 데이터 공유가 더욱 쉽고 효율적으로 이루어집니다.

 

REST API와 Open API 차이점

 

 

[CS] REST API와 Open API

REST API의 REST는 “Representational State Transfer” 의 약자이다.REST는 HTTP를 잘 활용하기 위한 원칙이고, 이 원칙을 잘 지킨 API를 RESTful한 API 즉, REST API라고 말한다.REST API는 HTTP 프로토

velog.io