<fields_uri>/{fieldName}[.<format>]
<fields_uri>/{fieldIndex}[.<format>]
The field resource represents a field in a dataset. fieldName in the URI specifies the name of the field. Note: Because it's not safe to operate field in a non-empty dataset, you can only add a field in an empty dataset.
Supported Methods:
Supported output formats: rjson, json, html, xml.
Implement the HTTP request on the following URI, where supermapiserver is the server name and World is a datasource on the server, Ocean is a dataset in the datasource, and SMID is a field in the Ocean dataset, and the response is in rjson format.
http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Ocean/fields/SMID.rjson
Gets the field information. The field information includes the field name, the field type, the field alias, the field default value, whether or not allowed to be null , the maximum length of the field, whether the length allowed to be zero, etc.
When implementing the GET request on the field resource, the structure of the response is as follows:
Field | Type | Description |
name | String | The field name. Uniquely identifies a field. |
caption | String | The field alias. Different fields can have the same alias. |
type | FieldType | The field type. |
defaultValue | String | The default value of the field. |
isRequired | boolean | Whether it is required. True represents a required field; while false represents a non-required field. |
isSystemField | boolean | Whether it is SuperMap system field. True represents the SuperMap system field. The SuperMap system field is prefixed with SM, except the SMUserID. |
isZeroLengthAllowed | boolean | Whether the length can be zero. |
maxLength | int | The maximum length of the field. |
Implement the GET request on the sample field resource with http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Ocean/fields/SMID.rjson to get the representation of the SMID field in the Ocean dataset in rjson format:
{
"childUriList": [
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Ocean/fields/SMID/MAX",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Ocean/fields/SMID/MIN",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Ocean/fields/SMID/AVERAGE",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Ocean/fields/SMID/STDDEVIATION",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Ocean/fields/SMID/SUM",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Ocean/fields/SMID/VARIANCE"
],
"fieldInfo": {
"caption": "SmID",
"defaultValue": "",
"isRequired": true,
"isSystemField": true,
"isZeroLengthAllowed": true,
"maxLength": 4,
"name": "SMID",
"type": "INT32"
}
}
Create a new field in the null dataset or modify the fields of the null dataset.
URI parameter {fieldName} and corresponding request body parameters need to be passed in before "?" while implementing the PUT request on the field resource.
Parameters in the URI:
Field | Type | Description |
{fieldName} | String | [Required parameter] Name of the field to be modified or created. |
Corresponding field info needs to be included in the PUT request body, that is, following parameters need to be passed in:
Field | Type | Description |
name | String | [Required parameter] Field name. Uniquely identifies a field and cannot repeat. If users modify the field, this parameter cannot be modified. If users create a new field, it should be identical to {fieldName}. |
caption | String | [Required parameter] The field alias. Different fields can have the same alias. It is identical to field name by default. |
type | FieldType | [Required parameter, cannot be modified] The field type. |
defaultValue | String | [Required parameter] The default value of the field. |
isRequired | boolean | [Required parameter, cannot be modified] Whether it is required. True represents a required field; while false represents a non-required field. The default is false. |
isSystemField | boolean | [Required parameter, cannot be modified] Whether it is SuperMap system field. True represents the SuperMap system field. The default is false. The SuperMap system field is prefixed with SM, except the SMUserID. |
isZeroLengthAllowed | boolean | [Required parameter, cannot be modified] Whether zero length is allowed. The default is false. |
maxLength | int | [Required parameter, cannot be modified] The maximum length of the field. The default is 8 bit. |
When implementing the PUT request on the field resource, the representation of the resource returned is included in the entity body of the response message, as shown below:
Field | Type | Description |
succeed | boolean | Whether the operation is successful. |
newResourceLoaction | String | The URI of the newly created field. Exists when creating a field. |
error | HttpError | Error message. If the creation is successful, this field will be absent. |
Since the Ocean dataset corresponding to the sample fields resource is not empty, therefore, the PUT request cannot be implemented to add a new field. Assume that there is an empty dataset NewDataset in the World datasource. The URI sees as follows:
http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/World/datasets/NewDataset.rjson
Then you can implement the PUT request on the non-existing field to add a new field. The URI is http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/World/datasets/NewDataset/fields/NewField.rjson. Parameters in the PUT request see as follows:
{
"isZeroLengthAllowed": "false",
"maxLength": "4",
"isRequired": "true",
"name": "NewField",
"caption": "NewField",
"type": "INT32",
"isSystemField": "true"
}
The response in json format is as follows:
{"succeed":true}
Deletes the field. It can only be performed on an empty dataset.
None.
When implementing the DELETE request on the field resource, the representation of the resource returned is included in the entity body of the response message, as shown below:
Field | Type | Description |
succeed | boolean | Whether the delete operation is successful. |
error | HttpError | Error message. If successful, the field will not exist. |
If you successfully delete NewField of NewDataset created in PUT Request Example, the response in rjson format is as follows:
{"succeed":true}
Asks for the response identical to the one that would correspond to a GET request, but without the response body. This is useful for retrieving meta-information written in response headers, without having to transport the entire content. The meta-information includes the media-type, content-encoding, transfer-encoding, content-length, etc.
The HEAD request helps check the existence of the field resource and whether it can be accessed by the client. By implementing the HEAD request on the URI, with .<format> appended to the end, we can quickly get to know whether the field resource supports the representation in <format> or not.