Genel mimari çözümlerde REST services IIS Web uygulaması olarak verilebilirdi. Ancak, Tiger3 için güvenlik değerledirmesi sebebiyle IIS kullanılmamıştır.
Servisi Kullanabilmek İçin
- .NET Framework 4.5 kurulmuş olmalıdır
Nasıl Çalışır
.Net Framework'ü direkt olarak REST çağrılarını Web API Controller'a yönlendirir.
controller'a bir mesaj geldiğinde
- REST çağrı başlığındaki access token kontrol edilir.
- access token geçerli ise ilgili kullanıcı ve firma bilgileri alınır.
- İstek, kullanıcı ve firma bilgisi ile Smart Thread Pool Queue ya konur.
- İşin bitmesi beklenir.
- sonuç JSON formatı ile doğru HTTP durum kodunda oluşturulur.
REST çağrılarında ürünün controller yapısından türetilen URL formatı kullanılır.
Kimlik Doğrulama
REST çağrısı yapan istemciler istek başlığında access token sunmak zorundadır.
İstemciler doğru access token sunmalı ve istendiğinde yenilemelidir.
POST http://172.16.12.55:9010/api/v1/doglaccount HTTP/1.1
Authorization: Bearer
AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAbat9TDrC10W80Hh3PoYXZwAAAAACAAAAAAADZgAAwAAAABAAAAD4qWkhLZQvBiXzBFOUgaU_AAAAAASAAACgAAAAEAAAAK3wmPId_28qTJgsospSLWioAAAAnPV48lcNsmqwtMtywMlMheu7rJ1I9UNujrbcmfLdWvAlcu4Ewag4WgRbbaNvE1ldKKvAEGPe7icZsJOxgp0ufAoSBzhiPvaPrJXmzqVsRUKi0qgBn8gqYcCa62-dF3OJDRxnY-KjPGLMPcY_nH8WUmoMJFBmOhS3QEXSm6Ut-VQ0JqaVpc81q_dhzhkOjEbgFVHkoRDIlddlRnT9pQiSGMA0T8Bj4s_eFAAAAHbfhFCKWRTK2bLU5teoErgvqesw
Accept: application/json, application/octet-stream
Content-Type: application/json; charset=utf-8
Host: 172.16.12.55:9010
Content-Length: 122
Expect: 100-continue
ideal çözümlerde access token, Security Token Service (STS) tarafından sağlanır. STS, Identity Provider Service (IDP) ile kullanıcı doğrulaması için konuşur ve token'ı yeniler. STS ve IDP burada anlatılmayacaktır.
Sadece Tiger REST servis yetki denetimi örnek kodlarına erişebilrsiniz.
Kimlik Denetimi Çağrısı
Başarılı token isteği için, istemci authorization başlığında
- client id
- client secret
bilgileri olmalıdır.
Client Secret ve Client Id bilgileri istemcinin kendi kullanıcı lisansı için oluşturulmalıdır.
POST http://172.16.12.47:9010/api/v1/token HTTP/1.1
Authorization: Basic TG9nb1lhesSxbMSxbTpuWk9pS2tkRkpSaGp1pXhQSWxGaEo0u2xiWC8vZVZGn3JCWjdidUxMcEFRPQ==
Accept: application/json, application/octet-stream
Content-Type: application/json; charset=utf-8
Host: 172.16.12.47:9010
Content-Length: 52
Expect: 100-continue
Connection: Keep-Alive
grant_type=password&username=LOGO&password=&firmno=214
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 653
Content-Type: application/json;charset=UTF-8
Expires: -1
Server: Microsoft-HTTPAPI/2.0
Access-Control-Allow-Origin: *
Date: Wed, 27 May 2015 06:41:08 GMT
{"access_token":"AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAbat9TDrC10W80Hh3PoYXZwAAAAACAAAAAAADZgAAwAAAABAAAAD4qWkhLZQvBiXzBFOUgaU_AAAAAASAAACgAAAAEAAAAK3wmPId_28qTJgsospSLWioAAAAnPV48lcNsmqwtMtywMlMheu7rJ1I9UNujrbcmfLdWvAlcu4Ewag4WgRbbaNvE1ldKKvAEGPe7icZsJOxgp0ufAoSBzhiPvaPrJXmzqVsRUKi0qgBn8gqYcCa62-dF3OJDRxnY-KjPGLMPcY_nH8WUmoMJFBmOhS3QEXSm6Ut-VQ0JqaVpc81q_dhzhkOjEbgFVHkoRDIlddlRnT9pQiSGMA0T8Bj4s_eFAAAAHbfhFCKWRTK2bLU5teoErgvqesw","token_type":"bearer","expires_in":119,"refresh_token":"0004c8cd8bef45bf8e2b53583cf07545","as:client_id":"","userName":"LOGO","firmNo":"214",".issued":"Wed, 27 May 2015 06:41:04 GMT",".expires":"Wed, 27 May 2015 06:43:04 GMT"}
Özellikleri
Logo Objects çok sayıda üst seviye bileşenden oluşur. Tiger REST V1 servisi aşağıdakileri içerir
- Data Objects üzerinde CRUD (IData)
Logo REST Data Nesnesi Arayüzleri - Data Objects üzerindeki metodlar (sınırlı*)
Logo REST Metod Arayüzleri - Unity Application üzerindeki metodlar (sınırlı*)
- Select Sorguları. Data insert/update/merge/delete sorguları konfigürasyon ile açılabilir. Ancak güvenlik nedeniyle önerilmez.
Logo REST Sorgu Arayüzü - CAPI get metodları
- REST API'nin kendini tanımlaması (self-description)
Üretim Uygulama arayüzlerine erişim REST üzerinden yapılmayacaktır.
Logo REST Runtime Parametreleri