Basic concepts
Authentication
The first lines in your .NET code should be used to create the Webservices object.
We suggest using this method:
OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.exception;
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, username, password);
try {
System.Console.WriteLine(ws.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();
}
}
}
Also is possible doing the same from each API class implementation.
We do not suggest this way.
For example with this method:
RepositoryImpl repositoryImpl = new RepositoryImpl(host, username, password);
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";
RepositoryImpl repositoryImpl = new RepositoryImpl(host, username, password);
try {
System.Console.WriteLine(repositoryImpl.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 main url http://docs.openkm.com/apidoc/ you'll see all available javadoc documentation.
At the moment of writing this page the actual OpenKM version was 6.3.0 what can change on time.
There is a direct correspondence between the classes and methods into, implemented at com.openkm.api packages and available from SDK for .NET.
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.cs |
BaseAuth.cs |
OKMBookmark |
Manages the user bookmarks. |
No |
||
OKMDashboard |
Manages all data shown at dashboard. |
No |
||
OKMDocument |
Manages documents. For example creates, moves or deletes a document. |
Yes |
DocumentImpl.cs |
BaseDocument.cs |
OKMFolder |
Manages folders. For example creates, moves or deletes a folder. |
Yes |
FolderImpl.cs |
BaseFolder.cs |
OKMMail |
Manages mails. For example creates, moves or deletes a mail. |
No |
MailImpl.cs |
BaseMail.cs |
OKMNote |
Manages notes on any node type. For example creates, edits or deletes a note on a document, folder, mail or record. |
Yes |
NoteImpl.cs |
BaseNote.cs |
OKMNotification |
Manages notifications. For example adds or removes subscriptions on a document or a folder. |
No |
|
|
OKMProperty |
Manages categories and keywords. For example adds or removes keywords on a document, folder, mail or record. |
Yes |
PropertyImpl.cs |
BaseProperty.cs |
OKMPropertyGroup |
Manages metadata. For example adds metadata group, sets metadata fields. |
Yes |
PropertyGroupImpl.cs |
BasePropertyGroup.cs |
OKMRepository |
A lot of stuff related with repository. For example it gets the properties of main root node ( /okm:root ). |
Yes |
RepositoryImpl.cs |
BaseRepository.cs |
OKMSearch |
Manage search feature. For example it manages saved queries or perform a new query to the repository. |
Yes |
SearchImpl.cs |
BaseSearch.cs |
OKMStats |
General stats of the repository. |
No |
||
OKMUserConfig |
Manages user home configuration. |
No |
Class Hierarchy
Packages detail:
Name | Description |
---|---|
com.openkm.sdk4csharp |
The com.openkm.OKMWebservicesFactory that returns an 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.impl |
All interface implementation classes:
|
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. |