Windchill REST Services
Windchill REST Services is a module that enables developers to configure OData services in Windchill. This module has its own release cycle, independent of the Windchill release. From Windchill 11.0 M030 CPS06 onward, the module is bundled with Windchill CPS. The module comprises of a framework and a set of PTC domains. The domains are configured using the functionality available in the framework.
Framework
The framework is designed to read a set of configuration files. These configuration files have the information required to set up OData services on Windchill. An OData service in Windchill REST Services is called a domain. Domains expose Windchill object types and object collections as OData entity types and entity sets.
OData standard specifies the URLs to access entities and entity sets in a domain. The URLs provide a uniform interface between domains and clients.
The framework generates the Entity Data Model (EDM) for each domain when a request is made to the $metadata URL of a domain. The framework also generates the service document for each domain when requested by clients.
The framework processes the HTTP requests made by clients to entity collections and entity instances in a domain. For example, when a client makes a GET request to an entity set, the framework processes the request in the following way:
checks the Windchill type for entities contained in the entity set,
queries Windchill to obtain the objects of the type,
converts the objects to OData entities,
sends the entities back to the client as a response to the GET request.
Similarly, the framework processes the POST, PATCH, PUT, and DELETE requests.
The framework is designed to be extensible. It enables overrides and enhancements to the processing logic of requests. The request processing infrastructure of the framework has built-in code hooks. The domain authors can use the hooks to either override or enhance the default processing logic of the requests executed by the framework. The implementation of these hooks is done in JavaScript and is executed by the Nashorn engine available in Java 8. You can work with Windchill Java APIs while writing the JavaScript implementation of the hooks.
PTC Domains
Windchill REST Services includes a set of domain configurations for specific functional areas of Windchill. The schema of Windchill consists of a broad range of functional areas. The domains are designed to enable access to smaller and functionally independent areas of this schema to RESTful clients.
The following domains are available with Windchill REST Services:
PTC Product Management Domain
PTC Document Management Domain
PTC Windchill Administration Domain
PTC Data Administration Domain
PTC Principal Management Domain
PTC Common Domain
PTC Navigation Criteria Domain
PTC Dynamic Document Management Domain
PTC Parts List Management Domain
PTC Service Information Management Domain
PTC Quality Domains
PTC Quality Management System Domain
PTC NC (Nonconformance) Domain
PTC CAPA Domain
PTC Customer Experience Management (CEM) Domain
PTC Regulatory Master Domain
PTC Audit Domain
PTC Info*Engine System Domain
PTC Factory Domain
PTC Manufacturing Process Management Domain
PTC Change Management Domain
PTC Classification Structure Domain
PTC Saved Search Domain
PTC Visualization Domain
PTC Product Platform Management Domain
PTC CAD Document Management Domain
PTC Effectivity Management Domain
PTC Event Management Domain
PTC Supplier Management Domain
PTC Workflow Domain
Windchill Domain
PTC UDI Domain
These domains are extensible by design. You can add new entities and expand existing entities in the domains. Refer to the section PTC Domains for more information about domains.
For more information on how to extend entities in PTC-provided domains, please see the section Extending Domains.
Custom Domains
Windchill REST Services enables you to create new domains. You can create new domains in any functional areas, even the areas which are not available in the PTC domains. Refer to the section Customizing Domains, for more information on how to create custom domains.
Code Sample
Windchill REST Services User’s Guide includes examples and code snippets for better understanding of the concepts. The examples in the section Examples for Performing Basic REST Operations, demonstrate the basic operations in Windchill REST Services.
However, please note that code examples included in this guide have been reformatted for presentation purposes, and therefore may contain hidden editing characters, such as tabs and end-of-line characters, and extraneous spaces. Do not cut and paste sample application code or code fragments from the User’s Guide as the additional formatting characters could break the code.