Logo Objects in REST servisi, standart REST servislerdeki gibi 4 http işlemi destekliyor.

GET                        (verileri okumak için)
POST                     (veri göndermek, set etmek için)
DELETE                 (veri silmek için )

ve

PUT 
PATCH                  (veri güncellemek için)


PUT işlemini gerçekleştirmek için URL aşağıdaki şekilde düzenlenmelidir;

PUT http://{serviste tanımladığınız IP}:{tanımladığınız port}/api/v1/{data nesnesi}/{referans}

PUT işlemi ile satırların güncellenmesi, istenilen bir satırın silinmesi mümkündür. PATCH ile ise sadece ekleme, var olan veriyi değiştirme işlemi yapabilmekteyiz. Göndereceğiniz JSON içerisinde de set edilmesini istediğiniz tüm alanlar olmalı. Set etmediklerinizi boş set etmek istediğinizi düşünecektir. Bu yüzden önce okumanızı (GET) sonrasında ise gelen JSON üzerinde değişiklik yapıp akabinde PUT yapmanızı öneririm. Bu yöntemle, örneğin bir fatura içeriğini güncellemek isterseniz aşağıdaki kodu inceleyebilirsiniz. 


PUT Örneği
        private void GETandPUT()
        {
            string accessToken = txtAccessToken.Text;

            // Aşağıdaki örnek 97562 referanslı "Satış Faturası" için hazırlanmıştır.
            // GET ve PUT için kullanılan metodların içeriklerine aşağıdaki linkten ulaşabilirsiniz.
            // https://docs.logo.com.tr/pages/viewpage.action?pageId=4915206

            string getUrl = "http://172.16.57.114:32001/api/v1/salesInvoices/97562?expandLevel=full";
            string putUrl = "http://172.16.57.114:32001/api/v1/salesInvoices/97562";

            // Fatura GET ediliyor (okunuyor)
            string result = Global.HttpGet(getUrl, accessToken);

            JObject resJSON = (JObject)JsonConvert.DeserializeObject(result.ToString());

            if (resJSON != null)
            {
                // Faturanın "Özel kodu" değiştiriliyor 
                resJSON["AUXIL_CODE"] = "TEST2";

                // Problem yaratan bazı JSON tagleri siliniyor
                resJSON.Property("GENIUSFLDSLIST").Remove();
                resJSON.Property("DEFNFLDSLIST").Remove();

                // Değiştirilen fatura PUT ediliyor (değiştiriliyor)
                result = Global.HttpPut(putUrl, resJSON.ToString(), accessToken);
                try
                {
                    // Değiştirilen faturanın son JSON bilgisi okunuyor
                    resJSON = (JObject)JsonConvert.DeserializeObject(result.ToString());

                    if (resJSON != null)
                    {
                        // Sonuç text bir alana yazdırılıyor
                        txtJSON.Text = resJSON.ToString();
                    }
                }
                catch (Exception)
                {
                    txtJSON.Text = result.ToString();
                }
            }
        }



PATCH ile ise sadece set etmek istediğiniz alanları, örneğin sadece internal_reference ve özel kod alanını gönderip, sadece özel kod alanının set edilmesi sağlanabiliyor. Yukarıdaki örnekteki PUT işlemi aşağıdaki JSON ile PATCH de edilebilirdi

Ancak PATCH işlemi ne yazık ki sadece header için çalışır, transactions gibi alt satırlarda çalışmaz.


{
     "INTERNAL_REFERENCE": 97562,
     "AUXIL_CODE": "TEST"
}
PATCH için Kod Örneği
       private void PATCHSample()
        {
            string accessToken = txtAccessToken.Text;
            
            string patchUrl = "http://172.16.57.114:32001/api/v1/salesInvoices/97562";
            string JSText = "{\"INTERNAL_REFERENCE\": 97562, \"AUXIL_CODE\": \"TEST\" }";
            
            string result = Global.HttpPatch(patchUrl, JSText, accessToken);
            try
            {
                dynamic resJSON = JsonConvert.DeserializeObject(result.ToString());

                if (resJSON != null)
                {
                    txtJSON.Text = resJSON.ToString();
                }
            }
            catch (Exception)
            {
                txtJSON.Text = result.ToString();
            }
        }



Telif HakkıKullanım KoşullarıGizlilik
Copyright © 2018 Logo Yazılım