Web Services Caller Function (Javascript)

DrogbA

Forum Üyesi
Katılım
27 Ara 2020
Mesajlar
3,440
Tepkime puanı
0
Puanları
36
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>
 

Peri

Co Admin
Katılım
2 May 2020
Mesajlar
4,949
Tepkime puanı
12
Puanları
36
Takım
Beşiktaş
Teşekkürler
 

Nutella

Bayan Üye
Özel Üye
Katılım
2 Ocak 2021
Mesajlar
3,559
Tepkime puanı
23
Puanları
36
Cinsiyet
  1. Bayan
Takım
Galatasaray
Paylaşım için teşekkürler.
 
metal işleme
Üst