Kavramlar

REST ile ilişkili kavramlar burada anlatılacaktır.

REST Nedir?

REST REpresentational State Transfer ifadesini simgeler. REST web standardları temelli mimariye sahiptir ve veri aktarımı/iletişimi için HTTP Protokolünü kullanır.

REST her bileşeni bir kaynak (resource) olan yerde HTTP standart metodları ile erişimi sağlar. REST ilk olarak Roy Fielding tarafından 2000'li yıllarda geliştirilmiştir.

REST mimarisinde;

  • REST Sunucusu kaynaklara erişimi sağlar
  • REST İstemcisi ise kaynaklara erişir
  • Her bir kaynak URIs/ global IDs ile tanımlanır.
  • REST kaynakları sunmak için çeşitli sunumlar(representation) kullanır. Bunlar;
    • text
    • JSON
    • XML
  • JSON web servislerde kullanılan en popüler formattır.

HTTP Methotları

Aşağıda listelenmiş iyi bilinen HTTP metotları REST tabanlı mimarilerde de kullanılır.

  • GET - Kaynaklara sadece okuma izinli erişim sağlar.

  • PUT - Yeni bir kaynak oluşturmak için kullanılır.

  • DELETE - Bir kaynaği silmek için kullanılır.

  • POST - mevcut bir kaynağı güncellemede ya da yeni bir kaynak oluşturmada kullanılır.

  • OPTIONS - kaynak üzerinden geçerli işlemleri öğrenmek için kullanılır.

RESTFul Web Servisleri

Web Servis aslında uygulamalar ya da sistemler arasındaki veri değişimi için açık protokol ve standartlar kolleksiyonudur.

Yazılım uygulamaları çok farklı dillerde yazılmış ve farklı platformlar üzerinden çalışıyor olabilir. Bütün bu uygulamalar tek makina üzerinde ya da internette farklı makineler üzerinde olabilir. Bunlar arasındaki veri değişimi için WS ler kullanılır.

Bu birlikte çalışabilirlik (Örneğin Java ve Python, ya da  Windows ve Linux uygulamaları) açık standartların kullanımı ile olur.

REST mimarisine dayanan Web Servisler. RESTful Web Servisler olarak bilinir.

Bu Web Servisler REST mimari kavramını uygulamak için HTTP metotlarını kullanırlar. Bir RESTful web servis genelde bir URI(Uniform Resource Identifier) tanımlar, JSON ve HTTP metotları ile source sunumunu sağlar.

Lisans

Logo CRM lisansı üzerinden tüketilir.

Kurulum

Kurulum Logo CRM kurulumu ile birlikte otomatik olarak gerçekleşir. Ayrıca bir kurulum yamaya gerek yoktur. IIS üzerinden çalışır.

Mimari

LogoCRM REST,

  • standart CRUD (Create, Read, Update, Delete) işlemlerini HTTP komutlarını kullarak gerçekleştirmesine izin vermekte
  • http ve https(Secure http) haberleşmesini

sağlayabilmektedir.

Logo REST çalışma mimarisi aşağıdaki şekilde özetlenmiştir.


İstemci için lisans kontrolleri yapılır.

İlk bakışta temel özellikleri şu şekilde özetlenebilir;

  • .Net Framework ile geliştirilmiştir.
  • http ve https protokollerini ve bu protokoller ile haberleşen masaüstü, mobil ve web uygulamaları içerisinde kullanılabilir.
  • İletişim için JSON formatını kullanır.
  • Arka planda veri alış verişi LogoCRM ile gerçekleştirilmektedir.
  • Multi Thread çalışacak şekilde dizayn edilmiştir.

İşleyiş adımları kısaca şu şekilde özetlenebilir;


1. ERIŞIM KONTROL

Herhangi bir işlem öncesinde yazılımcı access token (erişim belirteci) çağrısını servise gönderir. Bu çağrıda bağlantı kurulacak Logo ürünü içerisinde tanımlanmış standart bir kullanıcının kullanıcı adı, şifresi ve bağlantı kurulmak istenen şirket, şube bilgileri yer alır. Rest servisi bu çağrıyı olumlu karşılarsa geriye JSON formatında token bilgisi döndürür.

2. İŞLEM

Birinci adımda karşılanan token bilgisi ile yazılımcı yaptırmak istediği işlem bilgisini rest servise gönderir. Bu işlem herhangi bir data işlemi, örneğin sipariş fişi aktarımı olabileceği gibi irsaliye faturalama, borç kapama işlemi vb. Application nesnesi işlemi veya bir sorgulama işlemi de olabilir. Rest servis çağrıyı olumlu karşıladığında geriye JSON formatında bir dönüş yapmaktadır.

3. İŞLEM SONLANDIRMA

İşlem sonrasında ilgili session açık bırakılabilir veya yazılımcı tarafından sonlandırılabilir.


Sonlandırılmadığı takdirde birinci aşamada elde edilen access token parametrik olarak belirlenebilen bir süre sonra otomatik olarak kullanım dışı olacaktır.

Bu durumda da ileride değineceğimiz yöntemlerle access token için ek süre verilebilir.