Create Property
Overview
Define properties to be specified for user data
Required Privileges
alter-schema
Restrictions
OData Restrictions
- Always handles Content-Type in the request header as application/json
- Only accepts the request body in the JSON format
- Only application/json is supported for Content-Type in the request header and the JSON format for the response body
- Response body data is not ensured if atom or xml is specified in the $format query option, although it does not result in an error
Individual restrictions
- If user data using EntityType to be related exists, it can be registered only when Nullable is true
- Array of Edm.DateTime type can not be used
- Validity check of DefaultValue of Edm.DateTime is not properly done
- For EntityType, you can create up to 400 DynamicProperty / DeclaredProperty / ComplexTypeProperty
- Even if isKey/UniqueKey is set, it is not reflected in the schema
Request
Request URL
{CellURL}{BoxName}/{ODataCollecitonName}/$metadata/Property
Request Method
POST
Request Query
Common Request Query
| Query Name | Overview | Effective Value | Required | Notes |
|---|---|---|---|---|
| p_cookie_peer | Cookie Authentication Value | The cookie authentication value returned from the server during authentication | No | Valid only if no Authorization header specified Specify this when cookie authentication information is to be used |
OData Common Request Query
None
Request Header
Common Request Header
| Header Name | Overview | Effective Value | Required | Notes |
|---|---|---|---|---|
| X-HTTP-Method-Override | Method override function | User-defined | No | Specifying this value in a request with the POST method indicates that the specified value is used as the method |
| X-Override | Header override function | ${OverwrittenHeaderName}:${Value} | No | The normal HTTP header value is overwritten. Specify multiple X-Override headers for the overwriting of multiple headers |
| X-Personium-RequestKey | RequestKey field value output in the event log | Single-byte alphanumeric characters, hyphens ("-"), and underscores ("_") Maximum of 128 characters | No | When not specified, default value given with ${4 digits}_${22 digits} Base64url characters format representing an UUID for each request |
OData Common Request Header
| Header Name | Overview | Effective Value | Required | Notes |
|---|---|---|---|---|
| Authorization | Specifies authentication information in the OAuth 2.0 format | Bearer {AccessToken} | No | * Authentication tokens are the tokens acquired using the Authentication Token Acquisition API |
OData Create Request Header
| Header Name | Overview | Effective Value | Required | Notes |
|---|---|---|---|---|
| Content-Type | Specifies the request body format | application/json | No | [application/json] by default |
| Accept | Specifies the response body format | application/json | No | [application/json] by default |
Request Body
Format
JSON
| Item Name | Overview | Effective Value | Required | Notes |
|---|---|---|---|---|
| Name | Property Name | Number of digits: 1 - 128 Character type: Single-byte alphanumeric characters, hyphens ("-"), and underscores ("_") However, the string cannot start with a single-byte hyphen ("-") or underscore ("_") | Yes | |
| _EntityType.Name | EntityType name to be attached | Number of digits: 1 - 128 Character type: Single-byte alphanumeric characters, hyphens ("-"), and underscores ("_") However, the string cannot start with a single-byte hyphen ("-") or underscore ("_") | Yes | |
| Type | Type definition | Edm.Boolean / Edm.String / Edm.Int32 / Edm.Single / Edm.Double / Edm.DateTime / Registered ComplexType name | Yes | |
| Nullable | Null value authorization | true / false The default value is true | No | |
| DefaultValue | Default value | Refer to the following table The default value is null | No | |
| CollectionKind | Array type | None / List The default value is "None" | No | |
| IsKey | Primary key setting | true / false The default value is false | No | |
| UniqueKey | Unique key setting | Number of digits: 1 - 128 Character type: Single-byte alphanumeric characters, hyphens ("-"), and underscores ("_") However, the string cannot start with a single-byte hyphen ("-") or underscore ("_") | No |
Valid values for DefaultValue
Valid values of DefaultValue differ depending on Type value (type definition), and also define items with different types of the following definitions with character strings
| Type value | Effective Value |
|---|---|
| Edm.Boolean | true / false |
| Edm.String | Number of digits: 0-51200 byte When "\" is used, it must be specified with "\\" |
| Edm.Int32 | -2147483648 - 2147483647 |
| Edm.Single | Number of digits in integer part: 1-5 digits Number of digits in decimal part: 1-5 digits |
| Edm.Double | Represents a floating point number with 15 digits precision. |
| Edm.DateTime | It is specified as a character string in the format of Date ([time of long type]) The valid value of [time of long type] is -6847804800000(1753-01-01T00:00:00.000Z)-253402300799999(9999-12-31T23:59:59.999Z) In addition, you can specify the following as reserved words SYSUTCDATETIME (): server time |
Request Sample
{
"Name": "property1",
"_EntityType.Name": "entity-type1",
"Type": "Edm.String",
"Nullable": true,
"DefaultValue": null,
"CollectionKind": "None",
"IsKey": true,
"UniqueKey": null,
}
Response
Response Code
200
Response Header
Common Response Header
| Header Name | Overview | Notes |
|---|---|---|
| Access-Control-Allow-Origin | Cross domain communication permission header | Return value fixed to "*" |
| X-Personium-Version | API version that the request is processed | Version of the API used to process the request |
OData Response Header
| Header Name | Overview | Notes |
|---|---|---|
| Content-Type | Format of data to be returned | |
| Location | URL to the resource that was created | |
| DataServiceVersion | OData version | |
| ETag | Resource version information |
Response Body
Common
The response is a JSON object, the correspondence between the key (name) and type defined in the object (subobject) and the value are as follows
| Object | Name(Key) | Type | Value |
|---|---|---|---|
| Root | d | object | Object{1} |
| {1} | results | array | Array object {2} |
| {2} | __metadata | object | Object{3} |
| {3} | uri | string | URL to the resource that was created |
| {3} | etag | string | Etag value |
| {2} | __published | string | Creation date (UNIX time) |
| {2} | __updated | string | Update date (UNIX time) |
| {1} | __count | string | Get number of results in $inlinecount query |
Property specific response body
| Object | Name(Key) | Type | Value |
|---|---|---|---|
| {3} | type | string | ODataSvcSchema.Property |
| {2} | Name | string | Property Name |
| {2} | _EntityType.Name | string | EntityType name to be attached |
| {2} | Type | string | Type definition |
| {2} | Nullable | boolean | Null value authorization |
| {2} | DefaultValue | string | Default value |
| {2} | CollectionKind | string | Array type |
| {2} | IsKey | boolean | Primary key setting |
| {2} | UniqueKey | string | Unique key setting |
| {2} | IsDeclared | boolean | Declared true or false |
Error Messages
Refer to Error Message List
Response Sample
{
"d": {
"results": {
"__metadata": {
"uri": "https://cell1.unit1.example/box1/odata-collection1/$metadata/Property
(Name='property1',_EntityType.Name='entity-type1')",
"etag": "W/\"1-1487635336196\"",
"type": "ODataSvcSchema.Property"
},
"Name": "property1",
"_EntityType.Name": "entity-type1",
"Type": "Edm.String",
"Nullable": true,
"DefaultValue": null,
"CollectionKind": "None",
"IsKey": true,
"UniqueKey": null,
"IsDeclared": true,
"__published": "/Date(1487635336196)/",
"__updated": "/Date(1487635336196)/"
}
}
}
cURL Command
curl "https://cell1.unit1.example/box1/odata-collection1/\$metadata/Property" -X POST -i \
-H 'Authorization: Bearer AA~PBDc...(snip)...FrTjA' -H 'Accept: application/json' \
-d '{"Name": "property1","_EntityType.Name": "entity-type1","Type": "Edm.String","Nullable": true,\
"DefaultValue": null,"CollectionKind": "None","IsKey": true,"UniqueKey": null}'
