Basic concepts

Authentication

First, you must create the webservice object:

OKMWebservices ws = OKMWebservicesFactory.newInstance(host);

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

ws.login(user, password);

Once you are logged in with the webservices, the session is kept in the webservice object. Then you can use the other API methods.

At this point you can use all the Repository methods from "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 shown in this javadoc API summary.

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

At the time of writing this page, the current OpenKM version was 7.1.5, which may change over time.

There is a direct correspondence between the classes and methods implemented in the com.openkm.api packages and those available from the 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

BookmarkImpl.cs

BaseBookmark.cs

OKMDashboard

Manages all data shown on the dashboard.

Yes

DashboardImpl.cs

BaseDashboard.cs

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 emails. For example, create, move, or delete emails.

Yes

MailImpl.cs

BaseMail.cs

OKMNode

Manages general-purpose node actions.

Yes

NodeImpl.cs

BaseNode.cs

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 or 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 to the repository. For example, get the properties of the main root node (/okm:root).

Yes

RepositoryImpl.cs

BaseRepository.cs

OKMReport

Manages reports. For example, execute reports.

Yes

ReportImpl.cs

 BaseReport.cs

OKMSearch

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

Yes

SearchImpl.cs

BaseSearch.cs

OKMUserConfig

Manages user home configuration.

No

UserConfigImpl.cs

BaseUserConfig.cs

 (*) Indicates that REST support exists for it, but it is still not implemented in the SDK.

Class Hierarchy

Packages detail:

NameDescription

com.openkm.sdk4csharp

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

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

com.openkm.sdk4csharp.bean

Contains all classes resulting from the unmarshalling of REST objects.

com.openkm.sdk4csharp.definition

All interface classes:

  • com.openkm.sdk4csharp.definition.BaseActivity
  • com.openkm.sdk4csharp.definition.BaseAuth
  • com.openkm.sdk4csharp.definition.Bookmark
  • com.openkm.sdk4csharp.definition.BaseConversion
  • com.openkm.sdk4csharp.definition.BaseDashboard
  • com.openkm.sdk4csharp.definition.BaseDocument
  • com.openkm.sdk4csharp.definition.BaseFolder
  • com.openkm.sdk4csharp.definition.BaseMail
  • com.openkm.sdk4csharp.definition.BaseNode
  • com.openkm.sdk4csharp.definition.BaseNote
  • com.openkm.sdk4csharp.definition.BaseNotification
  • com.openkm.sdk4csharp.definition.BaseProperty
  • com.openkm.sdk4csharp.definition.BasePropertyGroup
  • com.openkm.sdk4csharp.definition.BaseRecord
  • com.openkm.sdk4csharp.definition.BaseRelation
  • com.openkm.sdk4csharp.definition.BaseReport
  • com.openkm.sdk4csharp.definition.BaseRepository
  • com.openkm.sdk4csharp.definition.BaseSearch
  • com.openkm.sdk4csharp.definition.BaseUserConfig
  • com.openkm.sdk4csharp.definition.BaseWizard

com.openkm.sdk4csharp.impl

All interface implementation classes:

  • com.openkm.sdk4csharp.impl.ActivityImpl
  • com.openkm.sdk4csharp.impl.AuthImpl
  • com.openkm.sdk4csharp.impl.BookmarkImpl
  • com.openkm.sdk4csharp.impl.ConversionImpl
  • com.openkm.sdk4csharp.impl.DashboardImpl
  • com.openkm.sdk4csharp.impl.DocumentImpl
  • com.openkm.sdk4csharp.impl.FolderImpl
  • com.openkm.sdk4csharp.impl.ImportImpl
  • com.openkm.sdk4csharp.impl.MailImpl
  • com.openkm.sdk4csharp.impl.NodeImpl
  • com.openkm.sdk4csharp.impl.NoteImpl
  • com.openkm.sdk4csharp.impl.NotificationImpl
  • 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.UserConfigImpl
  • com.openkm.sdk4csharp.impl.WizardImpl

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.