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.
RESTFul Web Servis Örnekleri
1 | GET | /UserService/users | Get list of users | Read Only |
2 | GET | /UserService/users/1 | Get User with Id 1 | Read Only |
3 | PUT | /UserService/users/2 | Insert User with Id 2 | Idempotent |
4 | POST | /UserService/users/2 | Update User with Id 2 | N/A |
5 | DELETE | /UserService/users/1 | Delete User with Id 1 | Idempotent |
6 | OPTIONS | /UserService/users | List the supported operations in web service | Read Only |
Lisans
NetOpenX REST Servisin kendisine ait lisansı bulunmuyor. NetOpenX altyapısını kullanır. Dolayısıyla NetOpenX REST Servisin çalışabilmesi için NetOpenX lisansının sistemde bulunması gerekmektedir. NetOpenX temelleri ve lisans konusu için lütfen tıklayınız.
NetOpenX REST Servisin Netsis Temelset 8.06 ve üzeri sürümlerinde çalışabildiği unutulmamalıdır.
Kurulum
Mimari
NetOpenX REST,
- yazılımcıların standart CRUD (Create, Read, Update, Delete) işlemlerini HTTP komutlarını kullarak gerçekleştirmesine izin vermekte
- http ve https(Secure http) haberleşmesini IIS servera ihtiyaç bırakmadan
sağlayabilmektedir.
Logo REST çalışma mimarisi aşağıdaki şekilde özetlenmiştir.
NetOpenX istemcisi için ise SSO(Merkezi Kimlik Yönetimi) üzerinden 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 NetOpenX ile gerçekleştirilmektedir. Dolayısıyla NetOpenX tüm veri aktarımı yeteneklerine sahiptir.
- Multi Thread çalışacak şekilde dizayn edilmiştir.
Ürünlere Göre REST Fonksiyon Karşılaştırması
Ürünlerimizde REST iki farklı şekilde sunulur.
- Logo App için sunulan REST
- LogoObjects/NetOpenX entegrasyon araçları üzerinden sunulan REST
Aşağıdaki tabloda Logo Apps ile Enterasyon araçları(Logo Objects, NetOpenX) üzerinden sunulan servislerin karşılaştırmasını görebilirsiniz.
| Logo Apps REST | Logo Objects REST | NetOpenX REST | ||
Netsis3 | Tiger3 | Go3 | |||
Data Nesnesi | Tüm Data Nesnesi | Kartlar+Fişler | Kartlar | Kartlar+Fişler | Tüm Data Nesneleri |
Metodlar | Tüm (NetOpenX) | Tüm (Logo Objetcs) | Tüm (Logo Objetcs) | Tüm (NetOpenX) | |
Lisans | ihtiyaç yok | ihtiyaç yok | ihtiyaç yok | Lisansa gerek var | Lisansa gerek var |
İş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 Sonlandırma
İş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.
Kaydet