Raw Data Service

Release Notes

1.1.0

Features
  • It is possible to fetch current supported interface version by calling service root uri.

Interface Information

Endpoints

Information about supported interface version can be fetched calling the root endpoint of DataService:

Example Example: Get interface version for Raw Data Service
Request
GET /rawdataServiceRest/ HTTP/1.1
Response
{"supportedVersions":["1.4.0"]}

Object Structure

Interface information returns the highest available minor version of each major version. This lets the user decide which features can be used. As a minor version is backwards compatible to all previous minor versions, there is no point in enumerating them all. An user want to know which revision of each major version is available as that means they can work around possible bugs of older revisions.

Service Information

Endpoints

The service information can be fetched via the following endpoint. This endpoint doesn’t provide filter parameters.

Example Example: Get service information for a given connection
Request
GET /rawdataServiceRest/serviceInformation HTTP/1.1
Response
 {
  "versionWsdlMajor": "2",
  "versionWsdlMinor": "3",
  "version": "5.8.0.0"
 }

Raw Data Information

Endpoints

You can can fetch information about raw data objects by using the following endpoints.

Returns a list of raw data file information entries for all entities with type :entity. You further have to and restrict the request to the entities’ uuids by adding the following uri parameter:

Parameter name Description
Example
uuids Restricts the query to the entities identified by the given uuids.
Warning Entites of type ‘Value’ are identified by a compound key, which consists of the uuid of the measurement, ‘|’ and the characteristics uuid

uuids={652ae7a0-d1e1-4ee2-b3a5-d4526f6ba822|78bd15c6-dc70-4ab4-bd3c-8ab2b5780b52}
Example Example: Get the information entries for several parts
Request
GET /rawDataServiceRest/rawData/part?uuids={05040c4c-f0af-46b8-810e-30c0c00a379e,5441c003-b6db-4217-ac6a-45cdbb805bb3} HTTP/1.1
Response
[
 {
      "target":
      {
          "entity": "Part",
          "uuid": " 05040c4c-f0af-46b8-810e-30c0c00a379e"
      },
      "key": 0,
      "fileName": "section view.meshModel",
      "mimeType": "application/x-zip-compressed",
      "lastModified": "2012-11-19T10:48:34.327Z",
      "created": "2012-11-19T10:48:34.327Z",
      "size": 147376,
      "md5": "02f9c86143ea176c06e24524385b5907"
  },
  {
      "target":
      {
          "entity": "Part",
          "uuid": "5441c003-b6db-4217-ac6a-45cdbb805bb3"
      },
      "key": 0,
      "fileName": "cad_22.meshModel",
      "mimeType": "application/x-zeiss-piweb-meshmodel",
      "lastModified": "2015-03-20T14:37:02.943Z",
      "created": "2015-03-20T14:37:02.943Z",
      "size": 837245,
      "md5": "cbde88e2ed754c70860b3e6d4313551a"
 }
]
Example Example: Get the information entries for a certain part
Request
GET /rawDataServiceRest/rawData/part/05040c4c-f0af-46b8-810e-30c0c00a379e HTTP/1.1
Response
 
[
 {
      "target":
      {
          "entity": "Part",
          "uuid": " 05040c4c-f0af-46b8-810e-30c0c00a379e"
      },
      "key": 0,
      "fileName": "section view.meshModel",
      "mimeType": "application/x-zip-compressed",
      "lastModified": "2012-11-19T10:48:34.327Z",
      "created": "2012-11-19T10:48:34.327Z",
      "size": 147376,
      "md5": "02f9c86143ea176c06e24524385b5907"
  }
 ]

Object Structure

The returned objects contains the following properties:

Property Description
TargetEntity target Specifies a concrete entity for a raw data object and consits of the entity’s type (Part, Characteristic, Measurement, Value) and guid. If raw data is attached to an entity of type Value, the uuid contains a compound key in the following format: {MeasurementUuid}|{CharacteristicUuid}
int key This is a unique key that identifies this specific raw data object for a corresponding entity. An entity can have multiple raw data object that are distinct by this key.
string fileName The filename of the raw data object. Please note that this filename is not unique (unlike filenames in traditional file systems).
string mimeType The file’s mime type.
DateTime lastModified The timestamp of the last modification of the corresponding raw data object
DateTime created The timestamp of the creation of the corresponding raw data object
int size The size of the raw data object in bytes
string md5 The MD5-Hash of the raw data object

Raw Data Objects

Endpoints

You can can fetch, create, update and delete raw data objects by using the following endpoints.

The server caches raw data fetch requests. When you request a raw data file for the first time the response will contain the file itself and several HTTP headers. One of these headers is the ETag header. An ETag is a unique hash value to identify the file. It is a combination of the file’s MD5 checksum and the last modification date. If you send the ETag value in the If-None-Match header, the server can respond two different ways, depending in whether the file has been modified since the last request:

  1. Not modified: The server will return a 304 - Not modified HTTP status code and the response body will be emtpy.
  2. Modified: The server will return the file.
Example Example: Fetch raw data with key 0 for a part with the uuid b8f5d3fe-5bd5-406b-8053-67f647f09dc7
Request
Without Caching
GET /rawDataServiceRest/rawData/part/b8f5d3fe-5bd5-406b-8053-67f647f09dc7/0 HTTP/1.1
With caching
GET /rawDataServiceRest/rawData/part/b8f5d3fe-5bd5-406b-8053-67f647f09dc7/0 HTTP/1.1
If-None-Match: "6ab0f6bd01b30aa8e55021085b820393635437006830400000"
Response
Modified
HTTP/1.1 200 OK
Etag: "6ab0f6bd01b30aa8e55021085b820393635437006830400000"
Last-Modified: Fri, 15 Aug 2014 11:58:03 GMT
...
The requested raw data file
Not modified
HTTP/1.1 304 Not modified
Example Example: Fetch the thumbnail for the raw data object with key 1 which is attached to the part with the uuid b8f5d3fe-5bd5-406b-8053-67f647f09dc7
Request
DELETE /rawDataServiceRest/rawData/part/b8f5d3fe-5bd5-406b-8053-67f647f09dc7/1/thumbnail HTTP/1.1
Response
HTTP/1.1 200 OK
The requested thumbnail

You can attach files to all entity types: parts, characteristics, measurements and measured values.

An add request consists of 3 mandatory parts:

  1. The URL specifies which entity the file will be added to.
  2. The request body contains the file itself.
  3. The HTTP headers must provide meta information about the file, see below for details.
HTTP header variable Description Example Value
Content-Disposition Includes the file name “MetalPart.meshModel”
Content-Length Includes the length in bytes 2090682
Content-MD5 Includes file’s MD5 hash sum “bdf6b06ab301a80ae55021085b820393”
Content-Type Includes file’s MIME type “application/x-zeiss-piweb-meshmodel”

When adding a file, you can pass the desired file key as part of the uri. If you pass -1 or no key, the next available key will automatically assigned by the server. (recommended)

Warning If you pass a key which is already assigned to another file, this file will be replaced.

Example Example: Add a raw data object to a part with the uuid b8f5d3fe-5bd5-406b-8053-67f647f09dc7
Request
POST /rawDataServiceRest/rawData/part/b8f5d3fe-5bd5-406b-8053-67f647f09dc7 HTTP/1.1
Content-Disposition: "MetalPart.meshModel"
Content-Length: 2090682
Content-MD5: "bdf6b06ab301a80ae55021085b820393"
Content-Type: "application/x-zeiss-piweb-meshmodel"
Response
HTTP/1.1 201 Created

An update request consists of 3 mandatory parts:

  1. The URL specifies the file to be replaced identified by :entity, :uuid and :key.
  2. The request body contains the file itself.
  3. The HTTP headers must provide meta information about the file, see below for details.
HTTP header variable Description Example Value
Content-Disposition Includes the file name “MetalPart.meshModel”
Content-Length Includes the length in bytes 2090682
Content-MD5 Includes file’s MD5 hash sum “bdf6b06ab301a80ae55021085b820393”
Content-Type Includes file’s MIME type “application/x-zeiss-piweb-meshmodel”
Example Example: Replace the raw data object with key 1 of the part with the uuid b8f5d3fe-5bd5-406b-8053-67f647f09dc7
Request
PUT /rawDataServiceRest/rawData/part/b8f5d3fe-5bd5-406b-8053-67f647f09dc7/1 HTTP/1.1
Content-Disposition: "MetalPart.meshModel"
Content-Length: 2090682
Content-MD5: "bdf6b06ab301a80ae55021085b820393"
Content-Type: "application/x-zeiss-piweb-meshmodel"
Response
HTTP/1.1 200 Ok
Example Example: Delete all raw data objects from the part with the uuid b8f5d3fe-5bd5-406b-8053-67f647f09dc7
Request
DELETE /rawDataServiceRest/rawData/part/b8f5d3fe-5bd5-406b-8053-67f647f09dc7 HTTP/1.1
Response
HTTP/1.1 200 OK
Example Example: Delete the raw data object with key 1 from the part with the uuid b8f5d3fe-5bd5-406b-8053-67f647f09dc7
Request
DELETE /rawDataServiceRest/rawData/part/b8f5d3fe-5bd5-406b-8053-67f647f09dc7/0 HTTP/1.1
Response
HTTP/1.1 200 OK