Basic concepts

Authentication

First, you must create the web service object:

OKMWebservices ws = OKMWebservicesFactory.newInstance(host);

Then should log in using the method "login". You can access the "login" method from web service object "ws" as is shown below:

ws.login(user, password);

Once you are logged with the webservices the session is kept in the web service Object. Then you can use the other API method

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

ws.repository.getAppVersion();
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.exception;
using com.openkm.sdk4csharp.impl; namespace OKMRest { public class Program { static void Main(string[] args) { String host = "http://localhost:8080/openkm"; String username = "okmAdmin"; String password = "admin"; OKMWebservice ws = OKMWebservicesFactory.newInstance(host);
try {
ws.login(user, password); System.Console.WriteLine(ws.repository.getAppVersion().getVersion()); } catch (RepositoryException e) { System.Console.WriteLine(e.ToString()); } catch (DatabaseException e) { System.Console.WriteLine(e.ToString()); } catch (UnknowException e) { System.Console.WriteLine(e.ToString()); } catch (WebserviceException e) { System.Console.WriteLine(e.ToString()); }
System.Console.ReadKey(); } } }

Accessing API

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

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

When writing this page, the actual OpenKM version was 7.1.5, which can change on time.

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

OpenKM API classes:

OpenKM API classDescriptionSupportedImplementationInterface

OKMActivity

Manages the activity log.

Yes

ActivityImpl.cs

BaseActivity.cs

OKMAuth

Manages security and users. For example, add or remove grants on a node, create or modify users or get the profiles.

Yes

AuthImpl.cs

BaseAuth.cs

OKMBookmark

Manages the user bookmarks.

Yes

(*)

 

OKMDashboard

Manages all data shown at dashboard.

Yes

(*)

 

OKMDocument

Manages documents. For example create, move or delete a document.

Yes

DocumentImpl.cs

BaseDocument.cs

OKMFolder

Manages folders. For example, create, move or delete a folder.

Yes

FolderImpl.cs

BaseFolder.cs

OKMMail

Manages mails. For example, create, move or delete a mail.

Yes

MailImpl.cs

BaseMail.cs

OKMNode

Manages general purpose node actions.

Yes

(*)

 

OKMNote

Manages notes on any node type. For example, create, edit or delete a note on a document, folder, mail ,or record.

Yes

NoteImpl.cs

BaseNote.cs

OKMNotification

Manages notifications. For example, add or remove subscriptions on a document or a folder.

Yes

NotificationImpl.cs

BaseNotification.cs

OKMProperty

Manages categories and keywords. For example, add or remove keywords on a document, folder, mail or record.

Yes

PropertyImpl.cs

BaseProperty.cs

OKMPropertyGroup

Manages metadata. For example, add a metadata group, and set metadata fields.

Yes

PropertyGroupImpl.cs

BasePropertyGroup.cs

OKMRecord

Manages records. For example create, move or delete a record. 

Yes

RecordImpl.cs

BaseRecord.cs

OKMRelation

Manages relations between nodes. For example, create a relation ( parent-child ) between two documents.

Yes

RelationImpl.cs

BaseRelation.cs

OKMRepository

A lot of material related with repository. For example, get the properties of main root node ( /okm:root ).

Yes

RepositoryImpl.cs

BaseRepository.cs

OKMReport

Manages reports. For example, execute reports.

Yes

(*) 

 

OKMSearch

Manages search feature. For example, manage saved queries or perform a new query to the repository.

Yes

SearchImpl.cs

BaseSearch.cs

OKMStamp

Manages stamp.

Yes

(*)

 

OKMStats

General stats of the repository.

No

   

OKMTask

Manages task. For example, create a new task.

Yes

(*)

 

OKMUserConfig

Manages user home configuration.

No

   

OKMWorkflow

Manages workflows. For example, execute a new workflow.

Yes

WorkflowImpl.cs

BaseWorkflow.cs

 (*) Indicate that exist REST support for it, but still not implemented into the SDK.

Class Hierarchy

Packages detail:

NameDescription

com.openkm.sdk4csharp

The  com.openkm.OKMWebservicesFactory that returns a com.openkm.OKMWebservices object, which implements all interfaces.

OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);

com.openkm.sdk4csharp.bean

Contains all classes result of unmarshalling REST objects.

com.openkm.sdk4csharp.definition

All interface classes:

  • com.openkm.sdk4csharp.definition.BaseActivity
  • com.openkm.sdk4csharp.definition.BaseAuth
  • com.openkm.sdk4csharp.definition.BaseDocument
  • com.openkm.sdk4csharp.definition.BaseFolder
  • com.openkm.sdk4csharp.definition.BaseMail
  • com.openkm.sdk4csharp.definition.BaseNote
  • com.openkm.sdk4csharp.definition.BaseProperty
  • com.openkm.sdk4csharp.definition.BasePropertyGroup
  • com.openkm.sdk4csharp.definition.BaseRecord
  • com.openkm.sdk4csharp.definition.BaseRelation
  • com.openkm.sdk4csharp.definition.BaseRepository
  • com.openkm.sdk4csharp.definition.BaseSearch
  • com.openkm.sdk4csharp.definition.BaseWorkflow

com.openkm.sdk4csharp.impl

All interface implementation classes:

  • com.openkm.sdk4csharp.impl.AuthImpl
  • com.openkm.sdk4csharp.impl.DocumentImpl
  • com.openkm.sdk4csharp.impl.FolderImpl
  • com.openkm.sdk4csharp.impl.MailImpl
  • com.openkm.sdk4csharp.impl.NoteImpl
  • com.openkm.sdk4csharp.impl.PropertyGroupImpl
  • com.openkm.sdk4csharp.impl.PropertyImpl
  • com.openkm.sdk4csharp.impl.RecordImpl
  • com.openkm.sdk4csharp.impl.RelationImpl
  • com.openkm.sdk4csharp.impl.RepositoryImpl
  • com.openkm.sdk4csharp.impl.SearchImpl
  • com.openkm.sdk4csharp.impl.WorkflowImpl

com.openkm.sdk4csharp.util

A couple of utilities.

The class com.openkm.sdk4csharp.util.ISO8601 should be used to set and parse metadata date fields.

com.openkm.sdk4csharp.exception

All exception classes.