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
GET {{core}}/rest/documents/{ids} HTTP/1.1
-- Paramètres d'URL
core: host de FlowerDocs core
ids: identifiant des documents à récupérer
-- Headers --
token: {{token}}
Content-Type: application/json
@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 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
GET {{core}}/rest/documents/{id}/files?includeContent={includeContent} HTTP/1.1
-- Paramètres d'URL --
core : host de FlowerDocs core
id: identifiant du document
includeContent: true ou false pour récupération du contenu
-- Headers --
token: {{token}}
includeContent: {{inclut le contenu}}
Content-Type: application/json
@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.
POST {{core}}/rest/documents/ HTTP/1.1
-- Paramètres d'URL --
core: host de FlowerDocs core
-- Headers --
token: {{token}}
Content-Type: application/json
-- Body (json) --
[
{
"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);
}
Modification de document
Les exemples ci-dessous indiquent comment mettre à jour des documents.
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.
POST {{core}}/rest/documents/{id} HTTP/1.1
-- Paramètres d'URL --
core: host de FlowerDocs core
id: identifiant du document
-- Headers --
token: {{token}}
Content-Type: application/json
-- Body (json) --
[
{
"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
POST {{core}}/rest/documents/{id}/files?replace={replace} HTTP/1.1
-- Paramètres d'URL --
core: host de FlowerDocs core
replace: true ou false pour remplacer le contenu
-- Headers --
token: {{token}}
Content-Type: multipart/form-data
-- Body (form-data) --
file (type file): fichier à importer
@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);
}
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.
DELETE {{core}}/rest/documents/{ids} HTTP/1.1
-- Paramètres d'URL --
core: host de FlowerDocs core
ids: identifiants des documents à supprimer
-- Header --
token: {{token}}
Content-Type: application/json
@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.
DELETE /rest/documents/{documentId}/files/{fileId} HTTP/1.1
-- Paramètres d'URL --
Host: {{core}}
documentId: identifiant du document
fileId: identifiant du contenu à supprimer
-- Headers --
token: {{token}}
Content-Type: application/json
@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
GET {{core}}/rest/documents/{documentId}/files/{fileId}/content?includeObfuscations={includeObfuscations} HTTP/1.1
-- Paramètres d'URL --
core: host de FlowerDocs core
documentId: identifiant du document
fileId: identifiant du contenu
includeObfuscations: true ou false pour inclure les obfuscations
-- Headers --
token: {{token}}
Content-Type: application/json
@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.
POST {{core}}/rest/documents/{documentId}/files/{fileId}/content/index HTTP/1.1
-- Paramètres d'URL --
core: host de FlowerDocs core
documentId: identifiant du document
fileId: identifiant du contenu
-- Headers --
token: {{token}}
Content-Type: application/json
-- Body (text) --
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.
DELETE {{core}}/rest/documents/{documentId}/files/{fileId}/content/index HTTP/1.1
-- Paramètres d'URL --
core: host de FlowerDocs core
documentId: identifiant du document
fileId: identifiant du contenu
-- Headers --
token: {{token}}
Content-Type: application/json
@Autowired
private DocumentContentService service;
public void removeContent() throws FunctionalException, TechnicalException
{
service.deindex(new Id("documentId"), new Id("fileId"));
}