Data Nesnesi Controller'ı
Malzeme Kartı, Muhasebe Hesap Kartı, Satış Faturası, .. gibi Tiger arayüzünden girilen kart ve fişlerin tamamı data nesnesi olarak değerlendirilmektedir. Logo Objects ile entegrasyonlarda malzeme kartları için bu data nesnesi doMaterials ile isimlendirilmiştir. Ancak, REST servis oluşturulurken Logo Objectsin controller yapısından türetilen URL formatı kullanılmamaktadır. Logo Objects data nesnesi isimleri ile REST serviste kullanılan URL' listesi farklıdır. Bu farklılıkları Logo REST Resource sayfasından inceleyebilirsiniz. Bu şekilde değerlendirilmesinin sebebi Logo bünyesinde üretilen entegrasyon araçlarında bir standart sağlayabilmek içindir. Ancak, içerik konusunda alışkanlıklar gözetilmiştir.
Veri modelleri Logo ERP ürünlerindeki XML veri yapısından REST için tekrar türetilmiştir. Logo Objects'e aşina çözüm ortaklarımız gözetilerek, türetilen XML tagleri ile REST serviste kullanılabilecek metod isimleri Logo Objects ile aynı olmasına dikkat edilmiştir.
GET Operasyonu
Get operasyonları ile veri listelerini (malzemeleri, cari hesapları, faturalar vb.) okumak için kullanılır.
GET işlemi hem liste almak için (tüm malzeme kartları listelensin gibi) hem de tek kaydın biilgilerine erişmek için (123 referanslı malzeme kartının bilgileri gibi) kullanılabilmektedir.
Data nesnelerinin liste olarak istenmesi
URL formatı api/v1/{Data Object Type} şeklinde olmalıdır.
Request Header
GET http://172.16.57.114:32001/api/v1/items HTTP/1.1
Accept: application/json, application/octet-stream
Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAof7EdDku_k6qkyv5NPm-...-yTTfItBI8hLk8xeWA1DC3q-2H74jVnw5P4U1dQwQRaWZ0JMA9tCQD6Phqo6E_F2UAwSgH34-H
Host: 172.16.57.114:32001
Request Body
Boş
Response header
HTTP/1.1 200 OK
Content-Length: 51253
Content-Type: application/json; charset=utf-8
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 09 Aug 2017 07:38:13 GMT
Response body
{
"Meta": {
"href": "http://172.16.57.114:32001/api/v1/items?limit=10",
"mediaType": "application/json; charset=UTF-8",
"apiVersion": "1.0"
},
"offset": 0,
"count": 10,
"limit": 10,
"first": {
"href": "http://172.16.57.114:32001/api/v1/items?limit=10",
"mediaType": "application/json; charset=UTF-8",
"apiVersion": "1.0"
},
"next": {
"href": "http://172.16.57.114:32001/api/v1/items?offset=10&limit=10",
"mediaType": "application/json; charset=UTF-8",
"apiVersion": "1.0"
},
"previous": {
"mediaType": "application/json; charset=UTF-8",
"apiVersion": "1.0"
},
"items": [{
"Meta": {
"href": "http://172.16.57.114:32001/api/v1/items/1",
"mediaType": "application/json; charset=UTF-8",
"apiVersion": "1.0"
},
"INTERNAL_REFERENCE": 1,
"RECORD_STATUS": 0,
"CARD_TYPE": 1,
"CODE": "0MALZEME1",
"NAME": "Logo Objects Sample Item",
"PRODUCER_CODE": "DENEME",
"AUXIL_CODE": "YP",
"CLASS_TYPE": 0,
"USEF_PURCHASING": 1,
"USEF_SALES": 1,
"USEF_MM": 1,
"VAT": 18.0,
...
]
}
ID (LogicalRef) ile tek data nesnesi isteme
ID ürün içindeki kaydın referans numarası olmak zorundadır.
LOGO Objects model kullanılarak kayıtlara ID ile ulaşılabilir.
Request Header
GET http://172.16.57.114:32001/api/v1/items/2 HTTP/1.1
Accept: application/json, application/octet-stream
Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAof7EdDku_k6qkyv5NPm-...-yTTfItBI8hLk8xeWA1DC3q-2H74jVnw5P4U1dQwQRaWZ0JMA9tCQD6Phqo6E_F2UAwSgH34-H
Host: 172.16.57.114:32001
Connection: Keep-Alive
Request Body
Boş
Response Header
HTTP/1.1 200 OK
Content-Length: 4916
Content-Type: application/json; charset=utf-8
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 09 Aug 2017 07:42:25 GMT
Response Body
{
"Meta": {
"href": "http://172.16.57.114:32001/api/v1/items/2",
"mediaType": "application/json; charset=UTF-8",
"apiVersion": "1.0"
},
"INTERNAL_REFERENCE": 2,
"RECORD_STATUS": 0,
"CARD_TYPE": 12,
"CODE": "MAMUL.01",
"CLASS_TYPE": 0,
"USEF_PURCHASING": 1,
"USEF_SALES": 1,
"USEF_MM": 1,
"VAT": 18.0,
"PAYMENTREF": 0,
"TRACK_TYPE": 0,
"LOCATION_TRACKING": 0,
"TOOL": 0,
"AUTOINCSL": 1,
"LOTS_DIVISIBLE": 1,
"SHELF_LIFE": 0.0,
"SHELF_DATE": 0,
"DOMINANTREFS1": 0,
"DOMINANTREFS2": 0,
"DOMINANTREFS3": 0,
"DOMINANTREFS4": 0,
"DOMINANTREFS5": 0,
"DOMINANTREFS6": 0,
"DOMINANTREFS7": 0,
"DOMINANTREFS8": 0,
"DOMINANTREFS9": 0,
"DOMINANTREFS10": 0,
"DOMINANTREFS11": 0,
"DOMINANTREFS12": 0,
"IMAGEINC": 0,
"TEXTINC": 0,
"DEPREC_TYPE": 0,
"DEPREC_RATE": 0.0,
"DEPREC_DURATION": 0,
"SALVAGE_VALUE": 0.0,
"REVAL_FLAG": 0,
"REVDEPREC_RFLAG": 0,
"PARTIAL_DEPREC": 0,
"DEPREC_TYPE2": 0,
"DEPREC_RATE2": 0.0,
"DEPREC_DURATION2": 0,
"REVAL_FLAG2": 0,
"REVDEPREC_FLAG2": 0,
"PARTIAL_DEPREC2": 0,
"APPROVED": 0,
"UNITSET_CODE": "05",
"UNITSETREF": 5,
"QCCSETREF": 0,
"DISTRIBUTED_AMOUNT": 0.0,
"CREATED_BY": 1,
"DATE_CREATED": "2007-04-12T00:00:00",
"HOUR_CREATED": 16,
"MIN_CREATED": 52,
"SEC_CREATED": 34,
"MODIFIED_BY": 1,
"DATE_MODIFIED": "2012-04-13T00:00:00",
"HOUR_MODIFIED": 18,
"MIN_MODIFIED": 56,
"SEC_MODIFIED": 55,
...
}
Satır(Line) Operasyonları
Data nesnelerinin alt kırılılmları olabilir. Malzeme kartının birimleri, Faturanın irsaliyeleri veya siparişin satırları gibi.
Sadece bu kırılımlara(alt nesnelere) erişim sağlanabilir. Aşağıda satış siparişi ve satırları için bazı örnekleri görebilirsiniz.
api/v1/salesOrders/{id:int}/TRANSACTIONS
- TRANSACTIONS listesi döner. verilen ID ile ilişkili sipariş satırları alınır.
api/v1/salesOrders/{id:int}/TRANSACTIONS/{index:int}
- verilen sipariş id (LOGICALREF) ile ilişkili tanım listesindaki belirttiğimiz şndexli satır döner.
api/v1/salesOrders/{id:int}/TRANSACTIONS/GetStockLinePrice/{_prcTyp}
- nesne satırları üzerinde GetStockLinePrice methodunu çağırır
Describe Operasyonu
REST nesne modeli tanımı istenebilir. Describe http://json-schema.org/ taslak formatında şemayı döner.
Request Header
GET http://172.16.57.114:32001/api/v1/definitions/items HTTP/1.1
Accept: application/json, application/octet-stream
Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAof7EdDku_k6qkyv5NPm...-yTTfItBI8hLk8xeWA1DC3q-2H74jVnw5P4U1dQwQRaWZ0JMA9tCQD6Phqo6E_F2UAwSgH34-H
Host: 172.16.57.114:32001
Connection: Keep-Alive
Request Body
Boş
Response Header
HTTP/1.1 200 OK
Content-Length: 179359
Content-Type: application/json; charset=utf-8
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 09 Aug 2017 07:48:02 GMT
Response Body
{
"title": "items",
"type": "object",
"properties": {
"DataObjectParameter": {
"type": [
"object",
"null"
],
"properties": {
"ReplicMode": {
"type": [
"boolean",
"null"
]
},
"CheckParams": {
"type": [
"boolean",
"null"
]
},
"CheckRight": {
"type": [
"boolean",
"null"
]
}
}
},
"Meta": {
"type": [
"object",
"null"
],
"properties": {
"href": {
"type": [
"string",
"null"
]
},
"mediaType": {
"type": [
"string",
"null"
]
},
"apiVersion": {
"type": [
"string",
"null"
]
}
}
},
"INTERNAL_REFERENCE": {
"required": true,
"type": [
"integer",
"null"
]
},
"RECORD_STATUS": {
"type": [
"integer",
"null"
]
},
"CARD_TYPE": {
"type": [
"integer",
"null"
]
},
"CODE": {
"type": [
"string",
"null"
]
},
"NAME": {
"type": [
"string",
"null"
]
},
"GROUP_CODE": {
"type": [
"string",
"null"
]
},
"PRODUCER_CODE": {
"type": [
"string",
"null"
]
},
...
}
Metodlar
Metodlar REST servis çağrıları(request) ile çağrılabilir. Servis controller'undan detaylı tanım bilgisi alınabilir.
Örnek Metod Çağrımı
api/v1/ARPSlips/{id:int}/ApplyRePayPln/{_lineNr}/{_rePayPCode}
- ID (LOGICALREF) belirtilen cari hesap fişi üzerinde ApplyRePayPln metodunun çağırım örneğidir. Metod parametreleri lineNr ve rePayPCode dir. Örnek gönderim URL'si, "GOP.01" kodlu geri ödeme planının Cari Hesap Fişinin ilk satıra (0.satır) uygulanması için yaklaşık olarak şu şekilde olacaktır;
http://172.16.57.114:32001/api/v1/ARPSlips/ApplyRePayPln/0/GOP.01
POST Operasyonu
Yeni bir kaynak oluşturmak için kullanılan bir operasyondur.
Örnek Post Çağrımı (Satış Siparişi için)
api/v1/salesOrders
Request Header
POST http://172.16.57.114:32001/api/v1/salesOrders HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAo...Otg2IB3dNeyphZdCBTo9bdQit37CVuOOdg
Host: 172.16.57.114:32001
Content-Length: 426
Expect: 100-continue
Connection: Keep-Alive
Request Body
{
"INTERNAL_REFERENCE": 0,
"NUMBER": "~",
"DATE": "2016-02-05T00:00:00",
"TIME": 102581337,
"ARP_CODE": "CARI.01",
"CURRSEL_TOTAL": 1,
"TRANSACTIONS": {
"items": [
{
"TYPE": 0,
"MASTER_CODE": "MALZEME.02",
"QUANTITY": 5,
"PRICE": 10,
"VAT_RATE": 18,
"UNIT_CODE": "ADET",
"UNIT_CONV1": 1,
"UNIT_CONV2": 1,
"EDT_CURR": 1
}
]
}
}
Response Header
HTTP/1.1 200 OK
Content-Length: 327
Content-Type: application/json; charset=utf-8
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 09 Aug 2017 06:45:22 GMT
Response Body
{
"INTERNAL_REFERENCE": 41051,
"NUMBER": "~",
"DATE": "2016-02-05T00:00:00",
"TIME": 102581337,
"ARP_CODE": "CARI.01",
"CURRSEL_TOTAL": 1,
"TRANSACTIONS": {
"items": [{
"INTERNAL_REFERENCE": null,
"TYPE": 0,
"MASTER_CODE": "MALZEME.02",
"QUANTITY": 5.0,
"PRICE": 10.0,
"VAT_RATE": 18.0,
"UNIT_CODE": "ADET",
"UNIT_CONV1": 1.0,
"UNIT_CONV2": 1.0,
"EDT_CURR": 1
}]
}
}
PUT Operasyonu
kayıt oluşturmak yada güncellemek için kullanılan operasyondur.
örnek PUT operasyonu kullanımı (Bir önceki POST işleminde kaydettiğimiz Satış Siparişine özel kod (AUXIL_CODE) bilgisi ekleme örneği)
api/v1/salesOrders/{id:int}
Request Header
PUT http://172.16.57.114:32001/api/v1/salesOrders/41051 HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAo..._Otg2IB3dNeyphZdCBTo9bdQit37CVuOOdg
Host: 172.16.57.114:32001
Content-Length: 465
Expect: 100-continue
Request Body
{
"INTERNAL_REFERENCE": 41051,
"NUMBER": "~",
"DATE": "2016-02-05T00:00:00",
"TIME": 102581337,
"ARP_CODE": "CARI.01",
"AUXIL_CODE":"OZELKOD",
"CURRSEL_TOTAL": 1,
"TRANSACTIONS": {
"items": [
{
"TYPE": 0,
"MASTER_CODE": "MALZEME.02",
"QUANTITY": 5,
"PRICE": 10,
"VAT_RATE": 18,
"UNIT_CODE": "ADET",
"UNIT_CONV1": 1,
"UNIT_CONV2": 1,
"EDT_CURR": 1
}
]
}
}
Response Header
HTTP/1.1 200 OK
Content-Length: 350
Content-Type: application/json; charset=utf-8
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 09 Aug 2017 06:52:50 GMT
Response Body
{
"INTERNAL_REFERENCE": 41051,
"NUMBER": "~",
"DATE": "2016-02-05T00:00:00",
"TIME": 102581337,
"AUXIL_CODE": "OZELKOD",
"ARP_CODE": "CARI.01",
"CURRSEL_TOTAL": 1,
"TRANSACTIONS": {
"items": [{
"INTERNAL_REFERENCE": null,
"TYPE": 0,
"MASTER_CODE": "MALZEME.02",
"QUANTITY": 5.0,
"PRICE": 10.0,
"VAT_RATE": 18.0,
"UNIT_CODE": "ADET",
"UNIT_CONV1": 1.0,
"UNIT_CONV2": 1.0,
"EDT_CURR": 1
}]
}
}
PATCH Operasyonu
mevcut kaydın kısmen update edilmesini sağlar.
Örnek Patch Çağrısı (Bir önceki PUT örneği ile eklenen özel kod bilgisini değiştirme örneği)
api/v1/salesOrders/{id:int}
Request Header
PATCH http://172.16.57.114:32001/api/v1/salesOrders/41051 HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAo..._Otg2IB3dNeyphZdCBTo9bdQit37CVuOOdg
Host: 172.16.57.114:32001
Content-Length: 465
Expect: 100-continue
Request Body
{
"INTERNAL_REFERENCE": 41051,
"AUXIL_CODE": "OZELKOD2"
}
Response Header
HTTP/1.1 200 OK
Content-Length: 350
Content-Type: application/json; charset=utf-8
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 09 Aug 2017 06:52:50 GMT
Response Body
{
"INTERNAL_REFERENCE": 41051,
"AUXIL_CODE": "OZELKOD2"
}
DELETE Operasyonu
Mevcut kaydı siler.
Örnek silme operasyonu (Yukarıda POST ile eklenen, PUT ile bazı alanları set edilen ve son olarak PATCH ile özel kodu güncellenen Sipariş Fişinin silinmesi örneği):
api/v1/salesOrders/{id:int}
Request Header
DELETE http://172.16.57.114:32001/api/v1/salesOrders/41051 HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Bearer AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAo..._Otg2IB3dNeyphZdCBTo9bdQit37CVuOOdg
Host: 172.16.57.114:32001
Content-Length: 0
Expect: 100-continue
Request Body
Boş
Response Header
HTTP/1.1 200 OK
Content-Length: 0
Content-Type: application/json; charset=utf-8
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 09 Aug 2017 06:52:50 GMT
Response Body
Boş