Basic concepts
Authentication
Section titled “Authentication”The first lines in your Java code should be used to create the Webservices object.
We suggest using this method:
OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.exception.AccessDeniedException;import com.openkm.sdk4j.exception.DatabaseException;import com.openkm.sdk4j.exception.RepositoryException;import com.openkm.sdk4j.exception.UnknowException;import com.openkm.sdk4j.exception.WebserviceException;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { System.out.println(ws.getAppVersion()); } catch (RepositoryException e) { e.printStackTrace(); } catch (DatabaseException e) { e.printStackTrace(); } catch (UnknowException e) { e.printStackTrace(); } catch (WebserviceException e) { e.printStackTrace(); } }}Also is possible doing the same from each API class implementation.
For example with this method:
RepositoryImpl repositoryImpl = new RepositoryImpl(host, username, password, new BeanHelper());
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.exception.AccessDeniedException;import com.openkm.sdk4j.exception.DatabaseException;import com.openkm.sdk4j.exception.RepositoryException;import com.openkm.sdk4j.exception.UnknowException;import com.openkm.sdk4j.exception.WebserviceException;import com.openkm.sdk4j.impl.RepositoryImpl;import com.openkm.sdk4j.util.BeanHelper;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; RepositoryImpl repositoryImpl = new RepositoryImpl(host, username, password, new BeanHelper());
try { System.out.println(repositoryImpl.getAppVersion()); } catch (RepositoryException e) { e.printStackTrace(); } catch (DatabaseException e) { e.printStackTrace(); } catch (UnknowException e) { e.printStackTrace(); } catch (WebserviceException e) { e.printStackTrace(); } }}Accessing API
Section titled “Accessing API”OpenKM API classes are under com.openkm package, as can shown at this Javadoc API summary.
OpenKM API classes:
| OpenKM API class | Description | Supported | Implementation | Interface |
|---|---|---|---|---|
| OKMAuth | Manages security and users. For example add or remove grants on a node, create or modify users or getting the profiles. | Yes | AuthImpl.java | BaseAuth.java |
| OKMBookmark | Manages the user bookmarks. | No | ||
| OKMDashboard | Manages all data shown at dashboard. | No | ||
| OKMDocument | Manages documents. For example create, move or delete a document. | Yes | DocumentImpl.java | BaseDocument.java |
| OKMFolder | Manages folders. For example create, move or delete a folder. | Yes | FolderImpl.java | BaseFolder.java |
| OKMMail | Manages mails. For example create, move or delete a mails. | Yes | MailImpl.java | BaseMail.java |
| OKMNote | Manages notes on any node type. For example create, edit or delete a note on a document, folder, mail or record. | Yes | NoteImpl.java | BaseNote.java |
| OKMNotification | Manages notifications. For example add or remove subscriptions on a document or a folder. | No | ||
| OKMProperty | Manages categories and keywords. For example add or remove keywords on a document, folder, mail or record. | Yes | PropertyImpl.java | BaseProperty.java |
| OKMPropertyGroup | Manages metadata. For example add metadata group, set metadata fields. | Yes | PropertyGroupImpl.java | BasePropertyGroup.java |
| OKMRecord | Manages records. For example create, move or delete a record. | Yes | RecordImpl.java | BaseRecord.java |
| OKMRelation | Manages relations between nodes. For example create a relation ( parent-child ) between two documents. | Yes | RelationImpl.java | BaseRelation.java |
| OKMRepository | A lot of options related with the repository. For example get the properties of main root node ( /okm:root ). | Yes | RepositoryImpl.java | BaseRepository.java |
| OKMReport | Manages reports. For example execute reports. | Yes | ReportImpl.java | BaseReport.java |
| OKMSearch | Manages search feature. For example manage saved queries or perform a new query to the repository. | Yes | SearchImpl.java | BaseSearch.java |
| OKMStats | General stats of the repository. | No | ||
| OKMTask | Manages tasks. For example create a new task. | No | ||
| OKMUserConfig | Manages user home configuration. | No | ||
| OKMWorkflow | Manages workflows. For example execute a new workflow. | Yes | WorkflowImpl.java | BaseWorkflow.java |
Class Hierarchy
Section titled “Class Hierarchy”Packages detail:
| Name | Description |
|---|---|
| com.openkm | The com.openkm.OKMWebservicesFactory that returns an com.openkm.OKMWebservices object which implements all interfaces. OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); |
| com.openkm.sdk4j.bean | Contains all classes result of unmarshalling REST objects. |
| com.openkm.sdk4j.definition | All interface classes: - com.openkm.sdk4j.definition.BaseAuth - com.openkm.sdk4j.definition.BaseDocument - com.openkm.sdk4j.definition.BaseFolder - com.openkm.sdk4j.definition.BaseMail - com.openkm.sdk4j.definition.BaseNote - com.openkm.sdk4j.definition.BaseProperty - com.openkm.sdk4j.definition.BasePropertyGroup - com.openkm.sdk4j.definition.BaseRecord - com.openkm.sdk4j.definition.BaseRelation - com.openkm.sdk4j.definition.BaseRepository - com.openkm.sdk4j.definition.BaseSearch - com.openkm.sdk4j.definition.BaseWorkflow |
| com.openkm.sdk4j.impl | All interface implementation classes: - com.openkm.sdk4j.impl.AuthImpl - com.openkm.sdk4j.impl.DocumentImpl - com.openkm.sdk4j.impl.FolderImpl - com.openkm.sdk4j.impl.MailImpl - com.openkm.sdk4j.impl.NoteImpl - com.openkm.sdk4j.impl.PropertyGroupImpl - com.openkm.sdk4j.impl.PropertyImpl - com.openkm.sdk4j.impl.RecordImpl - com.openkm.sdk4j.impl.RelationImpl - com.openkm.sdk4j.impl.RepositoryImpl - com.openkm.sdk4j.impl.SearchImpl - com.openkm.sdk4j.impl.WorkflowImpl |
| com.openkm.sdk4j.util | A couple of utilities. The class com.openkm.sdk4j.util.ISO8601 should be used to set and parse metadata date fields. |
| com.openkm.sdk4j.exception | All exception classes. |