Page History: Web API

Compare Page Revisions



« Older Revision - Back to Page History - Newer Revision »


Page Revision: 22.04.2015. 10:23:AM



Korištenje eVisitor Web API funkcionalnosti

Sučelje je izvedeno kao REST service (root URI: http://eVisitor/Rest). Kroz eVisitor Web API sučelje moguće je izvršiti sve operacije koje su dostupne kroz web sučelje same eVisitor aplikacije, pri čemu vrijede ista sigurnosna i poslovna pravila. Primjeri korištenja biti će prikazani u C# programskom jeziku koristeći RestSharp REST klijent.

Prijava (login)

Da bi pristup API-ju bio dozvoljen potrebno se prijaviti (login) u sustav koristeći Authentication service API (URI: http://eVisitor/Resources/AspNetFormsAuth/Authentication/), koji implementira slijedeće metode:

Login

  • Interface: (string UserName, string Password, bool PersistCookie) -> bool
  • Primjer request data: {"UserName":"myusername","Password":"mypassword","PersistCookie":false}
  • Odgovor je true pri uspješnom loginu, inače false. Pri uspješnom loginu odgvor servera sadrži i standardni authentication cookie koji se mora slati prilikom svakog poziva API REST servisa.

Logout

  • Nema nikakvih parametara, potrebno je proslijediti standardni authentication cookie. Odgovor je prazan.

Primjer prijave na sustav


using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Newtonsoft.Json;
using RestSharp;

namespace Htz.Rhetos.Test
{
    [TestClass]
    public class WebApiTest
    {
        public static string AuthenticationRestServiceUrl = "http://localhost/HtzRhetosServer/Resources/AspNetFormsAuth/Authentication/";

        [TestMethod]
        public void CanAuthenticate()
        {
            var authCookie = Login();
            Assert.IsNotNull(authCookie);

            Logout(authCookie);
        }

        public static RestResponseCookie Login()
        {
            var restRequest = new RestRequest()
            {
                Method = Method.POST,
                Resource = "Login",
                RequestFormat = DataFormat.Json,
            };

            restRequest.AddBody(new { UserName = "123", Password = "123", PersistCookie = false });

            var restClient = new RestClient(AuthenticationRestServiceUrl);
            var response = restClient.Execute(restRequest);
            if (response.Content == "true")
                return response.Cookies.FirstOrDefault(x => x.Name == ".ASPXAUTH");

            return null;
        }

        public static void Logout(RestResponseCookie authCookie)
        {
            var restRequest = new RestRequest()
            {
                Method = Method.POST,
                Resource = "Logout",
                RequestFormat = DataFormat.Json,
            };
            restRequest.AddCookie(authCookie.Name, authCookie.Value);

            var restClient = new RestClient(AuthenticationRestServiceUrl);
            var response = restClient.Execute(restRequest);            
        }
    }
}

Dostupne metode