Le service Document expose toutes les opérations disponibles autour des composants de type DOCUMENT.
Récupération de document
Les exemples ci-dessous indiquent comment récupérer des documents en utilisant les différentes opérations de get.
Récupération de document
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <IDS> : identifiant des documents à récupérer
curl -X GET "<CORE_HOST>/rest/documents/<IDS>" \
-H "token: <TOKEN>"
@Autowired
private DocumentService service;
public List<Document> get() throws FunctionalException, TechnicalException
{
List<Id> ids = Lists.newArrayList(new Id("documentId"));
return service.get(ids);
}
Récupération de version
Ce service permet de récupérer une version spécifique d’un document :
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <DOCUMENT_ID> : identifiant du document à récupérer
# <VERSION_ID> : identifiant de la version du document à récupérer
curl -X GET "<CORE_HOST>/rest/documents/<DOCUMENT_ID>/versions/<VERSION_ID>" \
-H "token: <TOKEN>"
@Autowired
private VersionService service;
public Document getVersion() throws FunctionalException, TechnicalException
{
Id documentId = new Id("documentId"));
Id versionId = new Id("versionId"));
return service.getVersion(documentId, versionId);
}
Récupération des fichiers associés
Ce service permet de récupérer les fichiers associés au document dont l’identifiant est passé en entrée :
- le contenu :
includeContent= true - les fichiers :
includeContent= false
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <ID> : identifiant du document
# <INCLUDE_CONTENT> : true ou false pour récupération du contenu
curl -X GET "<CORE_HOST>/rest/documents/<ID>/files?includeContent=<INCLUDE_CONTENT>" \
-H "token: <TOKEN>"
@Autowired
private DocumentService service;
public List<DocumentFile> get() throws FunctionalException, TechnicalException
{
Boolean includeContent = false;
return service.getFiles(new Id("documentId"), includeContent);
}
Création de document
Les exemples ci-dessous indiquent comment créer des documents en utilisant l’opération suivante.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
curl -X POST "<CORE_HOST>/rest/documents/" \
-H "token: <TOKEN>" \
-H "Content-Type: application/json" \
-d '[
{
"data": {
"classId": "Document"
},
"category": "DOCUMENT",
"name": "D1"
}
]'
@Autowired
private DocumentService service;
public List<Document> create() throws FunctionalException, TechnicalException
{
List<Document> documents = new ArrayList();
Document document = new Document();
document.setId(new Id("testId"));
ComponentData data = new ComponentData();
data.setClassId(new Id("ENV_Document"));
document.setData(data);
Tags tags = new Tags();
tags.getTags().add(new Tag(Arrays.asList("C0012"), "B_RefClient", false));
tags.getTags().add(new Tag(Arrays.asList("Fournisseur 12"), "B_NomClient", false));
tags.getTags().add(new Tag(Arrays.asList("RIB"), "B_TypeDocument", false));
document.setTags(tags);
documents.add(document);
return service.create(documents);
}
Création de document avec un contenu
Les exemples ci-dessous indiquent comment créer un document avec son contenu en utilisant l’opération suivante.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
curl -X POST "<CORE_HOST>/rest/documents/unique" \
-H "token: <TOKEN>" \
-F "file=@/path/to/file" \
-F 'document=[
{
"data": {
"classId": "Document"
},
"category": "DOCUMENT",
"name": "D1"
}
];type=application/json'
Modification de document
Les exemples ci-dessous indiquent comment mettre à jour des documents.
Modification d’un document et remplacement de son contenu
Cette opération permet la modification des données d’un document (identifiant de la classe, nom du document, ACL, etc.) ainsi que le remplacement de son contenu dans le même appel.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <ID> : identifiant du document
curl -X POST "<CORE_HOST>/rest/documents/<ID>/unique" \
-H "token: <TOKEN>" \
-F "file=@/path/to/file" \
-F 'document=[
{
"data": {
"classId": "Document"
},
"category": "DOCUMENT",
"name": "D1"
}
];type=application/json'
Modification des données
Cette opération permet de mettre à jour les données d’un document : tags et data (identifiant de la classe, nom du document, ACL …) mais aussi son contenu.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <ID> : identifiant du document
curl -X POST "<CORE_HOST>/rest/documents/<ID>" \
-H "token: <TOKEN>" \
-H "Content-Type: application/json" \
-d '[
{
"files": [
{
"id": "98c1f765-7595-46c3-8f4a-b75bd7c25ff7",
"size": 0
}
],
"data": {
"classId": "Document"
},
"category": "DOCUMENT",
"name": "D2"
}
]'
@Autowired
private DocumentService service;
public List<Document> update(Document document) throws FunctionalException, TechnicalException
{
List<Document> documents = new ArrayList();
tags.getTags().add(new Tag(Arrays.asList("Contrat"), "B_TypeDocument", false));
document.setTags(tags);
documents.add(document);
return service.update(documents);
}
Ajout de fichier
Cette opération permet d’ajouter un contenu à un document
replace: permet de remplacer le fichier existant par le nouveau contenu
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <ID> : identifiant du document
# <REPLACE> : true ou false pour remplacer le contenu
curl -X POST "<CORE_HOST>/rest/documents/<ID>/files?replace=<REPLACE>" \
-H "token: <TOKEN>" \
-F "file=@/path/to/file"
@Autowired
private DocumentService service;
public List<Document> addContent(Document document) throws FunctionalException, TechnicalException
{
List<DocumentFile> files = new ArrayList<DocumentFile>();
DocumentFile file = new DocumentFile();
file.setId(new Id("MyFile"));
file.setContent(new DataHandler(new FileDataSource(File.createTempFile("/tmp", ".txt"))));
files.add(file);
return service.addFiles(new Id("sampleDoc"), files, false);
}
Renommage de fichier
Cette opération permet de renommer un fichier associé à un document :
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <ID> : identifiant du document
# <FILE_ID> : identifiant du fichier
curl -X POST "<CORE_HOST>/rest/documents/<ID>/files/<FILE_ID>/name" \
-H "token: <TOKEN>" \
-d "<NEW_FILE_NAME>"
Recherche de document
Les opérations de recherche fonctionnent toutes sur le même modèle décrit ici.
Suppression de document
Les exemples ci-dessous indiquent comment supprimer des documents.
Suppression de document
Cette opération permet de supprimer le document ainsi que les fichiers associés.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <IDS> : identifiants des documents à supprimer
curl -X DELETE "<CORE_HOST>/rest/documents/<IDS>" \
-H "token: <TOKEN>"
@Autowired
private DocumentService service;
public void delete() throws FunctionalException, TechnicalException
{
List<Id> ids = Lists.newArrayList(new Id("sample_doc"));
service.delete(ids);
}
Suppression de fichier
Cette opération permet de supprimer un fichier.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <DOCUMENT_ID> : identifiant du document
# <FILE_ID> : identifiant du contenu à supprimer
curl -X DELETE "<CORE_HOST>/rest/documents/<DOCUMENT_ID>/files/<FILE_ID>" \
-H "token: <TOKEN>"
@Autowired
private DocumentService service;
public void delete() throws FunctionalException, TechnicalException
{
List<Id> fileIds = Lists.newArrayList(new Id("sample_doc"));
service.deleteFiles(documentId, fileIds);
}
Contenu
Récupération d’un contenu
Ce service permet de récupérer le contenu associé au fichier dont l’identifiant est passé en entrée :
- avec ou sans les obfuscations en fonction du paramètre
includeObfuscations
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <DOCUMENT_ID> : identifiant du document
# <FILE_ID> : identifiant du contenu
# <INCLUDE_OBFUSCATIONS> : true ou false pour inclure les obfuscations
curl -X GET "<CORE_HOST>/rest/documents/<DOCUMENT_ID>/files/<FILE_ID>/content?includeObfuscations=<INCLUDE_OBFUSCATIONS>" \
-H "token: <TOKEN>"
@Autowired
private DocumentService service;
public List<DocumentFile> get() throws FunctionalException, TechnicalException
{
Boolean includeContent = false;
return service.getFile(new Id("documentId"), new Id("fileId"), includeContent);
}
Indexer le contenu d’un document
Ce service permet d’indexer le contenu passé en paramètre et associé à l’identifiant de fichier.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <DOCUMENT_ID> : identifiant du document
# <FILE_ID> : identifiant du contenu
curl -X POST "<CORE_HOST>/rest/documents/<DOCUMENT_ID>/files/<FILE_ID>/content/index" \
-H "token: <TOKEN>" \
-H "Content-Type: application/json" \
-d "Contenu du document"
@Autowired
private DocumentContentService service;
public Id addContent() throws FunctionalException, TechnicalException
{
return service.index(new Id("documentId"), new Id("fileId"), "File contents");
}
Supprimer l’indexation de contenu d’un document
Ce service permet de supprimer l’indexation du contenu associé à un document.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <DOCUMENT_ID> : identifiant du document
# <FILE_ID> : identifiant du contenu
curl -X DELETE "<CORE_HOST>/rest/documents/<DOCUMENT_ID>/files/<FILE_ID>/content/index" \
-H "token: <TOKEN>"
@Autowired
private DocumentContentService service;
public void removeContent() throws FunctionalException, TechnicalException
{
service.deindex(new Id("documentId"), new Id("fileId"));
}