I installed Alfresco Community v4.1 for use in my application. I want to access its contents (list files, add, delete etc.) using CMIS REST API
. I don't find any example for the endpoint I need to use. I implemented a small CMIS
client (you can get information on it here) using Apache Chemistry
and listing the contents of my user's space and I obtain this result:
[Folder] workspace://SpacesStore/624914c7-3ca2-4937-a612-96f1df928cc1 - Dictionnaire de données
[Folder] workspace://SpacesStore/846c69d4-4ec2-44c8-972d-f975d9b98d41 - Modèles d'espace
[Folder] workspace://SpacesStore/09fe45df-9cba-4843-a1cb-944807e44267 - Projet de conception logicielle
....
[Folder] workspace://SpacesStore/ab5cab42-2b47-4042-a8f5-57bb06007cc3 - Espaces Utilisateurs
[Folder] workspace://SpacesStore/86f1c760-905e-4920-98a8-a6bdd10aa732 - ombinte
[Folder] workspace://SpacesStore/2dbc6156-fdfa-4ddc-9187-481992570369 - MonProjet
[Folder] workspace://SpacesStore/fb3bb96f-3eb0-40a5-a890-3d06d6e781cf - Carnet 200
[Folder] workspace://SpacesStore/b9acaf70-d5d5-4dba-a354-bae63ba96072 - Carnet 100
[Docment] workspace://SpacesStore/9c3c6e63-e217-47a8-8216-298d2419cffa;1.0 - file.pdf
When I try to list the contents of a node I always get a 404
error.
http://127.0.0.1:8080/alfresco/service/api/node/content/workspace/SpacesStore/ab5cab42-2b47-4042-a8f5-57bb06007cc3
Where can I find documentation on how to implement CMIS REST API for Alfresco?
You can use this method to access to your repository
try this worked fine for me
private static Session getSession(String serverUrl, String username, String password) {
SessionFactory sessionFactory = SessionFactoryImpl.newInstance();
Map<String, String> params = new HashMap<String, String>();
params.put(SessionParameter.USER, username);
params.put(SessionParameter.PASSWORD, password);
params.put(SessionParameter.ATOMPUB_URL, serverUrl);
params.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
List<Repository> repos = sessionFactory.getRepositories(params);
if (repos.isEmpty()) {
throw new RuntimeException("Server has no repositories!");
}
return repos.get(0).createSession();
}
This method get the session from your repository with your own informations
serverUrl : http://" + ipAlfresco + "/alfresco/api/-default-/public/cmis/versions/1.0/atom
username : admin
password : admin
Hope that helped you.
The official Alfresco documentation explains this pretty well. You shouldn't think of CMIS as a REST API itself. CMIS is an interoperability standard that aims to provide a generic, vendor-agnostic means of querying your data.
Anyway... Your problem seems to be that the noderef you're using is for a folder, which the service you're hitting doesn't work for. Try that instead with...
http://127.0.0.1:8080/alfresco/service/api/node/content/workspace/SpacesStore/9c3c6e63-e217-47a8-8216-298d2419cffa
...and see if you find your content.
For folders, try a WebDAV link, e.g.: http://localhost:8080/alfresco/webdav/Sites/swsdp/documentLibrary/Agency%20Files
来源:https://stackoverflow.com/questions/41626512/how-can-i-access-files-in-alfresco-using-the-cmis-rest-api