본문 바로가기
  • Welcome!
카테고리 없음

Windchill PLM - API Catalog for OData REST Services

by ToolBOX01 2024. 7. 1.

□ Windchill OData REST 서비스는 API 카탈로그에 문서화되어 있습니다.

OData WRS의 문서9API 카탈로그)를 보려면 찾아보기 > 사용자 정의 > 문서 > OData REST API로 이동하세요. 다응 드림을 참고 하세요.

url과 함께 OData REST API 카달로그가 표시 됩니다. 또한 "Windchill 서비스 엔드포인트"를 제공 합니다.

Service Endpoints :

Windchill REST API를 통해 기능 및 데이터에 액세스하는 데 사용되는 URL입니다. REST API는 표준 HTTP 요청 메서드(예: GET, POST, PUT, DELETE)를 사용하여 Windchill 서버와 상호 작용하는 프로그래밍 인터페이스입니다. 아래와 같이 Swagger기능을 제공 합니다.  Swagger는 REST API를 설계, 개발, 문서화, 소비하는 것을 돕는 오픈 소스 도구 생태계입니다. 개발자가 API를 보다 효율적으로 이해하고 사용할 수 있도록 여러 기능을 제공합니다.

Examples for Basic REST Operations 예제 사이트


□ PTC Data Administration Domain

PTC Data Administration 도메인은 Windchill의 데이터 관리 기능에 대한 액세스를 제공합니다. 이 도메인에는 사이트, 조직, 제품, 라이브러리, 프로젝트 컨테이너 등과 같은 Windchill 컨테이너를 나타내는 엔터티가 포함됩니다. 또한 이러한 컨테이너의 폴더 계층을 나타내는 엔터티도 포함됩니다. 이 도메인에는 클라이언트가 Windchill 시스템에서 사용할 수 있는 컨테이너를 읽을 수 있도록 하는 컨테이너 라는 엔터티 세트가 포함됩니다 .

1. Swagger기능을 통해 Url를 테스트 할수 있습니다. Url 입력은  "인코딩"으로해야 합니다.

HTML URL 인코딩은 URL에 있는 특정 문자를 다른 형식으로 변환하는 과정입니다. 이를 통해 웹 
브라우저가 URL을 정확하게 해석할 수 있습니다. 
예를 들어, 공백 문자나 특수 문자는 URL에서 제대로 작동하지 않을 수 있기 때문에, 이러한 문자를 
안전하게 전송하기 위해 인코딩합니다.

쉬운 예를 들어 설명하자면:

1. 공백 문자는 URL에서 `%20`으로 인코딩됩니다.
2. `!`, `@`, `#` 등의 특수 문자는 각각 `%21`, `%40`, `%23` 등으로 인코딩됩니다.

이렇게 인코딩하면 웹 브라우저가 URL을 처리할 때 혼동하지 않고 정확하게 해석할 수 있습니다. 

예를 들어, "Hello World!"라는 문장을 URL에 포함시키고 싶다면, URL 인코딩을 통해 
"Hello%20World%21"로 변환됩니다. 이는 웹 브라우저가 이 URL을 올바르게 이해하고 처리할 수 있도록 
도와줍니다.

 

 정확힌 HTML 인코딩을 위해  온라인 도구를 사용 합니다. (사이트)

2. Windchill REST Services는 OData 표준에서 다음과 같은 쿼리 매개변수를 지원합니다:

쿼리 매개변수는 클라이언트가 서버로 요청을 보낼 때 URL에 포함시켜 특정 조건이나 명령을 지정하는 요소입니다. 이를 통해 서버에서 원하는 데이터만 필터링하거나 정렬하여 받을 수 있습니다.

쿼리 매개변수 참조 사이트

 

PTC Help Center

Your browser has DOM storage disabled. Make sure DOM storage is enabled and try again.

support.ptc.com

▷ $filter
- $filter: 컬렉션의 엔티티를 필터링하기 위한 쿼리 조건입니다. 표현식을 사용하여 엔티티 세트에 접근할 때, true로 평가되는 엔티티만 표시할 수 있습니다. Windchill에서는 다음과 같은 부분집합의 OData 표현식만 지원합니다:
  - String, Int16, Int32, Int64, Boolean, DateTimeOffset, Single 및 Double 타입
  - EQ(같음), NE(같지 않음), GT(크다), LT(작다), GE(크거나 같다), LE(작거나 같다) 비교 연산자
  - AND, OR 논리 연산자
  - NOT 단항 연산자
  - startswith, endswith, contains 메서드
  - 단일 인수를 사용하는 isof 타입 검사 함수

예시 코드 : "00"으로 시작하는 부품만 필터링

GET ProdMgmt/Parts?$filter=startswith(Number, '00')

▷ $select
- $select: 응답의 일부로 반환할 엔티티 속성의 쉼표로 구분된 목록입니다. 예를 들어, URL에서 Document 속성 중 Name과 CheckoutState만 표시할 수 있습니다.

예시 코드 :  수량이 1인 PartUse 엔티티 중 첫 번째 엔티티만 표시

GET ProdMgmt/Parts('wt.part.WTPart:99999')/Uses?$filter=Quantity eq 1&$top=1



▷  $expand
- $expand: 관련된 리소스를 검색된 리소스와 함께 포함시킬 때 사용됩니다. 값은 탐색 목록의 쉼표로 구분된 목록입니다.

예시 코드 : PartUse 엔티티 중 수량이 1보다 큰 엔티티의 Quantity와 TraceCode 속성만 확장하여 표시

GET ProdMgmt/Parts?$expand=Uses($select=Quantity,TraceCode;$filter=Quantity gt 1)


▷ $levels
- $levels: $expand와 함께 사용되어 가져오고 반환할 정보의 깊이를 지정합니다. 값은 확장할 수준의 양의 정수 또는 Windchill Rest Services에서 지원하는 최대 확장 수준인 max 문자열입니다.

 


▷  $top
- $top: 컬렉션의 처음 N개의 엔티티를 반환합니다.


▷  $skip
- $skip: 컬렉션의 처음 N개의 엔티티를 건너뛰고 N+1번째 엔티티부터 표시합니다.

▷  $orderby
- $orderby: 엔티티를 오름차순 또는 내림차순으로 정렬합니다. Windchill은 다음 속성에 대해 정렬을 지원합니다:
  - String, Boolean, Integer, Real Number (Double), Date and Time 유형의 기본 속성
  - 복합 타입의 경우:
    - QuantityOfMeasureType: value 속성 지원
    - EnumType: InternalName 속성 지원
    - Hyperlink: URL 속성 지원

예시 코드 : Quantity 속성 기준으로 오름차순 정렬

GET ProdMgmt/Parts('wt.part.WTPart:99999')/Uses?$orderby=Quantity



▷  $count
- $count: 컬렉션의 항목 수를 반환합니다. URL에 $count 매개변수를 지정할 때는 true 또는 false 값을 필수로 지정해야 합니다.

예시 코드 : 사용된 파트 수를 반환

GET ProdMgmt/Parts('OR:wt.part.WTPart:897988')/UsedBy?$count=true


이러한 쿼리 매개변수는 클라이언트가 서버로부터 원하는 데이터를 효율적으로 검색하고 사용할 수 있도록 도와줍니다.

3. 실습 - 컨테이너 가져오기

Url을 이용하여 "Postman" 프로그램에서 테스트 할수 있습니다.