01-03-2019 01:28 AM
Hi all,
How would I create a new node with d:content property via REST API?
I created a custom type containing a property of type d:content:
<type name="thy:daniilFolder">
<title>Daniil Folder</title>
<parent>cm:folder</parent>
<properties>
<property name="thy:folderProp">
<type>d:text</type>
</property>
<property name="thy:folderDoc">
<type>d:content</type>
<mandatory>false</mandatory>
<index enabled="true">
<atomic>false</atomic>
<stored>false</stored>
<tokenised>true</tokenised>
</index>
</property>
</properties>
</type>
I'm trying to create a new node of this type using nodes/{nodeId}/children REST API like so:
{
"name":"Daniil Folder 2019",
"nodeType":"thy:daniilFolder",
"properties": {
"thy:folderProp": "Some prop",
"thy:folderDoc": "...base64-encoded representation of a PDF file..."
}
}
thy:folderProp gets set correctly, however thy:folderDoc is being set to an empty file:
"thy:folderDoc": {
"size": 0,
"locale": "en_US",
"id": 392,
"infoUrl": "contentUrl=|mimetype=|size=0|encoding=|locale=en_US_"
}
01-03-2019 01:34 AM
As far as I can see from both the API Explorer and the low-level code, the public V1 REST API does not support dealing with any custom d:content properties. Only cm:content is supported (actually hard-coded).
01-03-2019 01:34 AM
As far as I can see from both the API Explorer and the low-level code, the public V1 REST API does not support dealing with any custom d:content properties. Only cm:content is supported (actually hard-coded).
01-03-2019 05:53 AM
Thanks for the info, Axel!
Looks like I'll have to store base64 representation of a file and mimetype inside a d:any field.
01-03-2019 07:01 AM
Or you could just use an API that is a bit more suited to the use case, e.g. CMIS via Browser binding, instead of completely messing up the data storage. Any Base64 data in a d:any will be stored as a blob in the database instead of content on disk, and will seriously impact the performance of the DB the more data is being stored in that way.
Explore our Alfresco products with the links below. Use labels to filter content by product module.