VisualCron Web API

<< Click to Display Table of Contents >>

Navigation:  Using VisualCron > Interacting with VisualCron >

VisualCron Web API

The VisualCron Web API is an alternate way to interact with VisualCron and extract information. The settings for controlling ports and enabling the Web API is located in the in the Server settings->Server tab:

 

 

webapiserversettings

 

 

Allow Web API

When checked VisualCron open ports for Web API.

 

 

Unencrypted/Encrypted ports

The Web API uses two ports for communication. The encrypted one uses a certificate created by VisualCron to enable a secure communication channel.

 

 

Permissions

The Web API uses the same permission system as in VisualCron which means that you need to add a user in Manage user permissions window first.

 

Available methods

Once the WebAPI is allowed you can see available methods here:

 

http://localhost:8001/VisualCron/text/Docs

 

Calling the Web API

 

There are two ways of requesting information:

 

1. REST

 

The VisualCron REST service communicate through the HTTP protocol. By making simple HTTP calls against the VisualCron service you can easily extract information and interact with VisualCron. The REST service is able to return 3 different result outputs:

 

Text - plain text output

XML - XML output

JSON - JSON output

 

The output method is controlled through the url:

 

https://localhost:8002/visualcron/text/job/list?token=[token]

https://localhost:8002/visualcron/xml/job/list?token=[token]

https://localhost:8002/visualcron/json/job/list?token=[token]

 

Output result

By default, if you use text as output headers are added (property names). If you want to exclude these you can set &includeheaders=false in the query. By default available properties will be listed but you can also set which properties (columns) to include like this:

 

http://localhost:8001/visualcron/text/job/List?id=1&token=[toke]=id,name,runmissed,tasks

 

It is possible to control the field separator, text qualifier and line break like this:

 

http://localhost:8001/visualcron/text/job/List?id=1&token=[token]=59&textQualifier=34&lineBreak=10

 

 

Tokens and authentication

It is possible to authenticate once and use a token that will work for 24 hours (and will be renewed for each call). The token is then used in each call. You can also authenticate each time you call a method. Using token and a method requires at least 2 calls instead of supplying user name and password in each call. However, using tokens is faster in the long run and generally more secure.

 

Get token

To get a token you authenticate against the the logon method:

 

http://localhost:8001/visualcron/text/logon?username=admin&password=qwerty123

 

This call returns a token that you can used in following calls like:

 

http://localhost:8001/visualcron/text/job/List?token=[token]

 

 

Authenticate in call

By adding username and password parameters you can work directly with the method without using tokens.

 

http://localhost:8001/visualcron/text/job/List?username=admin&password=qwerty123

 

 

2. Web service/SOAP

 

It is also possible to communicate with VisualCron through the web service API. The wsdl URL can be found in the Web API tab in Server settings.

 

There is the following example in the API folder (sample TestClient project):

 

                 var binding = new BasicHttpBinding()

                 {

                         MaxBufferPoolSize = int.MaxValue,

                         MaxReceivedMessageSize = int.MaxValue,

                         ReaderQuotas =

                                 new XmlDictionaryReaderQuotas()

                                 {

                                         MaxArrayLength = int.MaxValue,

                                         MaxStringContentLength = int.MaxValue,

                                         MaxNameTableCharCount = int.MaxValue

                                 },

                         Security = new BasicHttpSecurity()

                         {

                                 Mode = BasicHttpSecurityMode.TransportCredentialOnly,

                                 Transport = new HttpTransportSecurity()

                                 {

                                         ClientCredentialType = HttpClientCredentialType.Basic

                                 }

                         }

 

                 };

 

                 var client = new WebServiceClient(binding, new EndpointAddress("http://localhost:8001/VisualCron"));

                 //or just:

                 //

                 //var client = new WebServiceClient();

                 //

                 //but better setup binding

 

                 if (client.ChannelFactory.Credentials != null)

                 {

                         //set Credentials

                         client.ChannelFactory.Credentials.UserName.UserName = txtUserName.Text;

                         client.ChannelFactory.Credentials.UserName.Password = txtPassWord.Text;

                 }

                 try

                 {

                         //just call methods

                         var jobs = client.Job_List();

 

                         foreach (var job in jobs)

                         {

                                 Console.WriteLine(job.Name);

                         }

                 }

                 catch

                 {

 

                 }