Basic concepts

Authentication

First, you must create the webservice object:

OKMWebservices ws = OKMWebservicesFactory.getInstance(host);

Then should login using the method "login". You can access the "login" method from webservice object "ws" as is shown below:

ws.login(user, password);

Once you are logged with the webservices the session is keep in the webservice Object. Then you can use the other API method

At this point you can use all the Repository methods from "repository" class as is shown below:

ws.repository.getAppVersion();
package com.openkm;

import com.openkm.sdk4j.OKMWebservicesFactory;
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.OKMWebservices;

public class Test {

    public static void main(String[] args) {
        String host = "http://localhost:8080/openkm";
        String user = "okmAdmin";
        String password = "admin";
        OKMWebservices ws = OKMWebservicesFactory.getInstance(host);

        try {
            ws.login(user, password);
            System.out.println(ws.repository.getAppVersion());
        } catch (RepositoryException e) {
            e.printStackTrace();
        } catch (DatabaseException e) {
            e.printStackTrace();
        } catch (UnknowException e) {
            e.printStackTrace();
        } catch (WebserviceException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Accessing API

OpenKM API classes are under com.openkm package, as can shown at this Javadoc API summary.

At main url http://docs.openkm.com/javadoc/ you'll see all available Javadoc documentation.

At the moment of writing this page the actual OpenKM version was 7.1.5 what can change with time.

There is a direct correspondence between the classes and methods implemented at com.openkm.api packages and available from SDK for Java.

OpenKM API classes:

OpenKM API classDescriptionSupportedImplementationInterface

OKMActivity

Manages the activity log.

Yes

ActivityImpl.java

BaseActivity.java

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.

Yes

BookmarkImpl.java BaseBookmark.java

OKMDashboard

Manages all data shown at dashboard.

Yes

DashboardImpl.java BaseDashboard.java

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

OKMNode

Manages general purpose node actions.

Yes

NodeImpl.java

NodeBase.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.

Yes

NotificationImpl.java BaseNotification.java

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

OKMUserConfig

Manages user home configuration.

No

   

OKMWorkflow

Manages workflows. For example execute a new workflow.

Yes

WorkflowImpl.java

BaseWorkflow.java

Class Hierarchy

Packages detail:

NameDescription

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.BaseActivity
  • com.openkm.sdk4j.definition.BaseAuth
  • com.openkm.sdk4j.definition.BaseBookmark
  • com.openkm.sdk4j.definition.BaseConversion
  • com.openkm.sdk4j.definition.BaseDashboard
  • com.openkm.sdk4j.definition.BaseDocument
  • com.openkm.sdk4j.definition.BaseFolder
  • com.openkm.sdk4j.definition.BaseMail
  • com.openkm.sdk4j.definition.BaseNode
  • com.openkm.sdk4j.definition.BaseNote
  • com.openkm.sdk4j.definition.BaseNotification
  • 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.ActivityImpl
  • com.openkm.sdk4j.impl.AuthImpl
  • com.openkm.sdk4j.impl.BookmarkImpl
  • com.openkm.sdk4j.impl.ConversionImpl
  • com.openkm.sdk4j.impl.DashboardImpl
  • com.openkm.sdk4j.impl.DocumentImpl
  • com.openkm.sdk4j.impl.FolderImpl
  • com.openkm.sdk4j.impl.MailImpl
  • com.openkm.sdk4j.impl.NodeImpl
  • com.openkm.sdk4j.impl.NoteImpl
  • com.openkm.sdk4j.impl.NotificationImpl
  • 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.