Web Services Caller Function (Javascript)

Ahbap

Harbi Üye
Forum Üyesi
Katılım
29 Mayıs 2019
Mesajlar
8,562
Tepkime puanı
2
Merhaba,

Web servis kullandığım neredeyse bütün projelerde kullandığım bir javascript fonksiyonu, kullanımı oldukça kolaylaştıran bir yapıdır. Bir çoğunuzun işine yarayacağına eminim.
PHP:
 <script type="text/javascript">
    /**
     *
     * parameters_object için tanımlı değişkenler
     *
     * custom_success_function: Servis başarıyla cevap döndürdüğünde çağırılacak varsayılan fonksiyonun dışında bir fonksiyon adı
     * custom_error_function: Servis başarıyla cevap döndürmediğinde çağırılacak varsayılan fonksiyonun dışında bir fonksiyon adı
     *
     * Kullanımı
     *
     * var parameters_object = { user_id: 1, receiver_user_id: 2, conversation_id: 3 };
     * call_web_service('get_messages', parameters_object, 'GET');
     *
     * param action: Web servisin adı
     * param parameters_object: Web service gönderilecek parametrelerin bulunduğu obje
     * param ajax_type: GET veya POST, default olarak GET
     * param base_url: Eğer default servisin yolundan farklı bir servise gönderecekseniz bu parametreyide gönderebilirsiniz.
     * returns {boolean}
     * 
     */
    function call_web_service(action,parameters_object,ajax_type,base_url){

        // Bazı kontroller için ajax çağırımının başladığını belirtiyoruz
        ajax_running = true;

        if(action.length>1){
            
            // Eğer web servis ismi varsa herşey yolunda demektir
            
        }else{
            
            ajax_running = false;
            return false; // Web servis ismi boş olduğu için fonksiyonu burada kesiyoruz
            
        }

        var post_data=parameters_object;
        var parameters_object_length=Object.keys(parameters_object).length;

        if (parameters_object_length>0){
            
            // Eğer gönderilen obje boş değilse herşey yolunda demektir
            
        }else{
            
            ajax_running = false;
            return false; // Hiç bir veri gönderilmediği için fonksiyonu burada kesiyoruz
            
        }

        submitted_ajax_type="GET"; // Varsayılan olarak GET ayarlandı, POST işlemini yalnızca şifre eposta veya kredi kartı gibi bilgileri gönderecekseniz kullanmanızı tavsiye ediyorum
        
        if(ajax_type=="POST"){
            submitted_ajax_type="POST";
        }

        if(base_url.length>5){
            
            // Eğer farklı bir servis yolu girilmişse başına çift slash ekliyoruz
            base_url="//"+base_url;
            
        }else{
            base_url=""; // Girilmemişse boş bırakıyoruz
        }

        // jQuery ajax fonksiyonu yardımıyla web servisimizi çalıştırıyoruz
        $.ajax({
            type: submitted_ajax_type,
            url: base_url+"/web_services/"+action+"/?",
            cache:     false,
            data:     post_data,
            success: function(data) {

                ajax_running=false;

                // Servis başarıyla cevap verdiğinde otomatik olarak bu servise ait bir başarılı fonksiyonu çağırıyoruz
                // Örneğin servisin adı get_messages ise başarıyla cevap döndüğünde success_get_messages fonksiyonu çağırılıyor
                // Eğer başarıyla cevap döndüğünde çağırılmasını istediğiniz fonksiyon farklı ise bunu gönderilen parametreler arasına 'custom_success_function' adıyla eklemeniz gerekmektedir
                if(typeof parameters_object.custom_success_function != 'undefined' && typeof window[parameters_object.custom_success_function] === 'function') {
                    window[parameters_object.custom_success_function](data,parameters_object);
                } else if (typeof window["success_"+action] === "function"){
                    window["success_"+action](data,parameters_object);
                }
                else{
                    // Fonksiyon bulunamadı ama her şey yolunda, cevap başarıyla döndü
                }

            },
            error: function(data){

                ajax_running=false;

                // Servis başarıyla cevap vermediğinde otomatik olarak bu servise ait bir hata fonksiyonu çağırıyoruz
                // Örneğin servisin adı get_messages ise başarıyla cevap dönmediğinde error_get_messages fonksiyonu çağırılıyor
                // Eğer başarıyla cevap dönmediğinde çağırılmasını istediğiniz fonksiyon farklı ise bunu gönderilen parametreler arasına 'custom_error_function' adıyla eklemeniz gerekmektedir
                if(typeof parameters_object.custom_error_function != 'undefined' && typeof window[parameters_object.custom_error_function] === 'function') {
                    window[parameters_object.custom_error_function](data,parameters_object);
                } else if(typeof window["error_"+action] === "function"){
                    window["error_"+action](data,parameters_object);
                }
                else{
                    // Fonksiyon bulunamadı ve servis başarıyla cevap döndüremedi !
                }

            }
        });
    }

    /**
     *
     * Servis başarıyla cevap döndürdüğünde çağırılan varsayılan fonksiyon
     *
     * param data: Servisten dönen veriler
     * param parameters_object: Servise gönderdiğimiz veriler
     *
     */
    function success_get_messages(data, parameters_object) {
        console.log(data);
    }

    /**
     *
     * Servis başarıyla cevap döndürmediğinde çağırılan varsayılan fonksiyon
     *
     * param data: Servisten dönen veriler
     * param parameters_object: Servise gönderdiğimiz veriler
     *
     */
    function error_get_messages(data, parameters_object) {
        console.log(data);
    }
</script>




PHP:
 <script type="text/javascript">
    /**
     *
     * parameters_object için tanımlı değişkenler
     *
     * custom_success_function: Servis başarıyla cevap döndürdüğünde çağırılacak varsayılan fonksiyonun dışında bir fonksiyon adı
     * custom_error_function: Servis başarıyla cevap döndürmediğinde çağırılacak varsayılan fonksiyonun dışında bir fonksiyon adı
     *
     * Kullanımı
     *
     * var parameters_object = { user_id: 1, receiver_user_id: 2, conversation_id: 3 };
     * call_web_service('get_messages', parameters_object, 'GET');
     *
     * param action: Web servisin adı
     * param parameters_object: Web service gönderilecek parametrelerin bulunduğu obje
     * param ajax_type: GET veya POST, default olarak GET
     * param base_url: Eğer default servisin yolundan farklı bir servise gönderecekseniz bu parametreyide gönderebilirsiniz.
     * returns {boolean}
     * 
     */
    function call_web_service(action,parameters_object,ajax_type,base_url){

        // Bazı kontroller için ajax çağırımının başladığını belirtiyoruz
        ajax_running = true;

        if(action.length>1){
            
            // Eğer web servis ismi varsa herşey yolunda demektir
            
        }else{
            
            ajax_running = false;
            return false; // Web servis ismi boş olduğu için fonksiyonu burada kesiyoruz
            
        }

        var post_data=parameters_object;
        var parameters_object_length=Object.keys(parameters_object).length;

        if (parameters_object_length>0){
            
            // Eğer gönderilen obje boş değilse herşey yolunda demektir
            
        }else{
            
            ajax_running = false;
            return false; // Hiç bir veri gönderilmediği için fonksiyonu burada kesiyoruz
            
        }

        submitted_ajax_type="GET"; // Varsayılan olarak GET ayarlandı, POST işlemini yalnızca şifre eposta veya kredi kartı gibi bilgileri gönderecekseniz kullanmanızı tavsiye ediyorum
        
        if(ajax_type=="POST"){
            submitted_ajax_type="POST";
        }

        if(base_url.length>5){
            
            // Eğer farklı bir servis yolu girilmişse başına çift slash ekliyoruz
            base_url="//"+base_url;
            
        }else{
            base_url=""; // Girilmemişse boş bırakıyoruz
        }

        // jQuery ajax fonksiyonu yardımıyla web servisimizi çalıştırıyoruz
        $.ajax({
            type: submitted_ajax_type,
            url: base_url+"/web_services/"+action+"/?",
            cache:     false,
            data:     post_data,
            success: function(data) {

                ajax_running=false;

                // Servis başarıyla cevap verdiğinde otomatik olarak bu servise ait bir başarılı fonksiyonu çağırıyoruz
                // Örneğin servisin adı get_messages ise başarıyla cevap döndüğünde success_get_messages fonksiyonu çağırılıyor
                // Eğer başarıyla cevap döndüğünde çağırılmasını istediğiniz fonksiyon farklı ise bunu gönderilen parametreler arasına 'custom_success_function' adıyla eklemeniz gerekmektedir
                if(typeof parameters_object.custom_success_function != 'undefined' && typeof window[parameters_object.custom_success_function] === 'function') {
                    window[parameters_object.custom_success_function](data,parameters_object);
                } else if (typeof window["success_"+action] === "function"){
                    window["success_"+action](data,parameters_object);
                }
                else{
                    // Fonksiyon bulunamadı ama her şey yolunda, cevap başarıyla döndü
                }

            },
            error: function(data){

                ajax_running=false;

                // Servis başarıyla cevap vermediğinde otomatik olarak bu servise ait bir hata fonksiyonu çağırıyoruz
                // Örneğin servisin adı get_messages ise başarıyla cevap dönmediğinde error_get_messages fonksiyonu çağırılıyor
                // Eğer başarıyla cevap dönmediğinde çağırılmasını istediğiniz fonksiyon farklı ise bunu gönderilen parametreler arasına 'custom_error_function' adıyla eklemeniz gerekmektedir
                if(typeof parameters_object.custom_error_function != 'undefined' && typeof window[parameters_object.custom_error_function] === 'function') {
                    window[parameters_object.custom_error_function](data,parameters_object);
                } else if(typeof window["error_"+action] === "function"){
                    window["error_"+action](data,parameters_object);
                }
                else{
                    // Fonksiyon bulunamadı ve servis başarıyla cevap döndüremedi !
                }

            }
        });
    }

    /**
     *
     * Servis başarıyla cevap döndürdüğünde çağırılan varsayılan fonksiyon
     *
     * param data: Servisten dönen veriler
     * param parameters_object: Servise gönderdiğimiz veriler
     *
     */
    function success_get_messages(data, parameters_object) {
        console.log(data);
    }

    /**
     *
     * Servis başarıyla cevap döndürmediğinde çağırılan varsayılan fonksiyon
     *
     * param data: Servisten dönen veriler
     * param parameters_object: Servise gönderdiğimiz veriler
     *
     */
    function error_get_messages(data, parameters_object) {
        console.log(data);
    }
</script>
 

SiyahLi

Harbi Üye
Forum Üyesi
Katılım
2 Mayıs 2020
Mesajlar
3,503
Tepkime puanı
8
Takım
Beşiktaş
Teşekkürler
 

Nutella

Harbi Üye
Bayan Üye
Özel Üye
Katılım
2 Ocak 2021
Mesajlar
9,432
Tepkime puanı
8
Cinsiyet
  1. Bayan
Takım
Galatasaray
Paylaşım için teşekkürler.
 
İçerik sağlayıcı "paylaşım" sitelerinden biri olan Harbimekan.Com Forum, Eğlence ve Güncel Paylaşım Platformu Adresimizde 5651 Sayılı Kanun’un 8. Maddesine ve T.C.K’nın 125. Maddesine göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. Harbimekan.Com sitesindeki konular yada mesajlar hakkında yapılacak tüm hukuksal Şikayetler için info@harbimekan.com yada iletişim sayfası üzerinden iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 3 Gün (72 Saat) içerisinde Forum yönetimi olarak tarafımızdan gereken işlemler yapılacaktır.

Bu Site, Bilim ve Sağlık Haber Ajansı Üyesidir.

Yığıntı - 8kez - kaynak mağazam - Uğur Ağdaş