HHTTP XML JSON teknolojileri ve RESTful API Web Servisleri
Web Api Nedir?
Web Api Neden Kullanılır?
Farklı Platformlar Arası İletişim
Internet Media Type (XML - JSON)
Client ve Server İletişimi
Single Page Aplication
KnockoutJS ve Angular JS
Rest ve Rest API Nedir?
Rest (Representational State Transfer), Server (Sunucu) ve Client (İstemci) arasında veri alışverişini sağlayan bir mimari modeldir. Rest API de Rest mimarisinin kullanımıyla web hizmetleri arasında veri alışverişini sağlayan uygulama ara birimidir.
API Nedir? Ne İşe Yarar?
API (Application Programming Interface) yani Uygulama Programlama Arayüzü şeklinde Türkçeye çevrilebilen bir modüldür. API sayesinde programlar, kendilerinde olmayan ve farklı programlarda mevcut olan bazı işlev ve kabiliyetleri çekerek kendi bünyesinde çalıştırabiliyor.
SOAP Nedir?
SOAP (Simple Object Access Protocol) yani Basit Nesne Erişim Protokolü, dağıtık yapıda bulunan web servislerinin iletişimi gerçekleştirmek üzere kullanılan Sunucu – İstemci mantığında çalışan bir protokoldür. RPC (Remote Procedure Call) modelini kullanan SOAP, keskin kurallar kullanarak iletişim gerçekleştirir.
JSON Nedir?
JSON (JavaScript Object Notation) tüm sunucular arasında haberleşme için kullanılan ve verilerin XML’e göre daha az komplike, daha küçük boyutta ve daha kolay taşınmasını sağlayan bir protokoldür. XML yerine daha hafif bir yapıda olduğu için daha çok tercih edilir. SOAP veri taşınması için XML kullanırken Rest API, verilerin taşınması için JSON formatını kullanır.
REST API Nasıl Çalışır?
Rest, HTTP protokolünü kullanarak, URL adresleri üzerinden veri ve dosya alışverişi sağlayan bir yapıdır. Rest API ise Rest işlemini yapabilmek için kurgulanmış modüle verilen isimdir. Bu API (Modül) yardımıyla Rest işlemleri ve veri alışverişi yapılıyor.
SOAP yerine neden Rest tercih ediliyor derseniz;
- Rest ile veri akışları SOAP’taki XML yerine daha hafif bir yapıdaki JSON formatı yardımıyla gerçekleşir.
- SOAP’taki RPC gibi karmaşık bağlantı yapıları yerine HTTP protokolü kullanılır.
- SOAP gibi sert standartlara göre daha esnek yapısı vardır.
- SOAP gibi Proxy kullanımına zorlanmazsınız.
- Kolay entegre edilebilen bir yapıdadır.
Rest ile oluşturulan Server – Client bağlantısı sonucunda veri alışverişi belirli istekler sayesinde gerçekleşir. Rest sırasında kullanılan HTTP istekleri ve işlevleri aşağıdaki gibidir;
- GET, veri listelemek ve görüntülemek için kullanılır.
- POST, veri eklemek için kullanılan bir istektir.
- DELETE, veri silmek için kullanılır.
- PATCH, verinin bir kısmının güncellenmesi için kullanılan bir istektir.
Web Servis
Web servis kullanımı, uygulamaların ve servislerin uzaktaki bir veritabanına veya servise erişmesi gerektiği zamanlarda uygundur.
Web servisler, farklı cihazlar ve platformlar arasındaki iletişimi belirli bir standart haline getirmiş ve bir takım veri formatları ve protokollere göre yapabilmeyi sağlayan yapıdaki yazılımlara denir. Web servisler farklı dillerde, frameworklerde ve teknolojilerde geliştirilebilir bu önemsizdir. Çünkü web servislerin hepsi HTTP, SOAP, REST gibi standartlar üzerine geliştirilir.Bu standartlara sahip her servis, ekosistem içerisine rahatlıkla dahil olup uyum sağlayabilir.
SOAP
SOAP(Simple Object Access Protocol – Basit Nesne Erişim Protokolü), distributed uygulamalarda ve çeşitli web servislerinin haberleşmesinde kullanışan bir iletişim protokolüdür. RPC (Remote Procedure Call) modelini kullanır ve istemci/sunucu mantığına dayanır. Genel olarak SOAP, XML tabanlı kurallar bütünüdür. Web üzerinden
fonksiyonları kullanmak için geliştirilmiş bir sistemdir. Soap mesajları genelde http protokolü ile bazen de TCP/IP protokolü ile gönderilir. W3C standartıdır.
Bir SOAP mesajı;
Envelope;
Tüm mesaj içeriğinin içinde olduğu elemandır. SOAP mesajları XML formatında oluştundan bir root elemanı olmalıdır. Envelope SOAP mesajının root etiketidir de denebilir. Bu Elemanın içinde Header ve Body gibi kısımlar da bulunur.
Header;
Klasik html’de bulunan <head></head> etiketine benzetilebilir. Bu bölümde mesajın meta-data bilgileri gönderilir.
Body;
Soap mesajının ana içeriğini barındıran kısımdır. Bu bölümde metotlarla ilgili bilgiler veya metodun sonucu yer alır.
REST ve SOAP Arasındaki Farklar Nelerdir?
Rest, JSON, HTML ve XML gibi veri tiplerini desteklediğinden sadece XML tabanlı SOAP’a göre daha esnek ve kullanışlıdır.
Soap, isteklerini oluşturmak için W3C standartı olan bir WSDL dili kullanmak zorundadır. Rest’te buna gerek yoktur istekler URI üzerinden oluşturulabilir. Bir dile ihtiyaç duymadığından REST’in kullanımı ve tasarlanması daha kolaydır.
Güvenlik açısından SOAP için hazır fonksiyonlar bulunmaktadır ve daha kompleks oluşu onu bu konuda daha avantajlı yapar.
Her ikisi de HTTP protokolünü kullanır ve server-client arasındaki haberleşmeyi sağlar. Ancak REST için HTTP şarttır SOAP ise TCP/IP STMP gibi protokollere de destek verebilir.
Cachleme isteği için REST basit HTTP metodunu kullanır ve SOAP’a göre daha kolaydır. SOAP, bu işlem için karışık XML requestleri yapmaktadır.
WebSocket Nedir?
WebSocket iki yönlüdür, HTTP'nin aksine ws:// veya wss:// ile başlar, aynı istemci-sunucu iletişim senaryosunda kullanılan çift yönlü bir protokoldür.
Websocket durum bilgisi olan bir protokoldür, yani istemci ve sunucu arasındaki bağlantı, taraflardan biri (istemci veya sunucu) tarafından sonlandırılıncaya kadar canlı kalır. İstemci ve sunucudan herhangi biri tarafından bağlantıyı kapattıktan sonra, bağlantı her iki uçtan da sonlandırılır.
WebSocket'ler Neden Kullanılır?
WebSocket fikri, HTTP tabanlı teknolojinin sınırlamalarından doğmuştur. HTTP ile bir istemci bir kaynak ister ve sunucu istenen verilerle yanıt verir. HTTP tek yönlü bir protokoldür - sunucudan istemciye gönderilen tüm veriler önce istemci tarafından istenmelidir.
WebSocket ise, UDP'ye benzer, ancak TCP'nin güvenilirliği ile mesaj tabanlı veri göndermeye izin verir. WebSocket, ilk aktarım mekanizması olarak HTTP'yi kullanır, ancak HTTP yanıtı alındıktan sonra TCP bağlantısını canlı tutar, böylece istemci ve sunucu arasında ileti göndermek için kullanılabilir.
WebSocket “gerçek zamanlı” uygulamalar oluşturmamızı sağlar.
WebSocket Ne Zaman Kullanılır?
Gerçek zamanlı web uygulamaları : Gerçek zamanlı web uygulaması, arka uç sunucusu tarafından sürekli olarak gönderilen verileri istemci ucunda göstermek için bir web soketi kullanır.
WebSocket'te, veriler zaten açık olan aynı bağlantıya sürekli olarak itilir/iletilir, bu nedenle web soketi daha hızlıdır ve uygulama performansını artırır.
Oyun uygulaması : UI üzerindeki değişikleri websocketler ile sayfayı güncellemeden yapabilirsiniz. Sunucuya istekler websocket üzerinden iletilir.
Chat Uygulaması : Sohbet uygulaması, mesajı abone arasında değiş tokuş etmek, yayınlamak ve yayınlamak için bağlantıyı yalnızca bir kez sabitlemek için WebSocket kullanır.
WebSocket Nasıl Kullanabiliriz?
Genellikle kullandığınız programlama diline göre bir framework kullanmak en mantıklısı olacaktır. Bazı programlama dilleri için aşağıdaki linklerden kütüphanelere erişebilirsiniz.
Sonuç Olarak
WebSockets, büyük sorunlara basit bir çözüm sunar. Kolay kullanımı ile kolay entegre edilebilir. Yazılımlar üzerinde ciddi bir yük oluşturmaz.
HTTP Protokol Nedir?
HTTP Nedir ?
Hyper Text Transfer Protocol
Protocol Nedir ?
Kurallar Dizisi
Http URIs
Http Methods (verbs)
GET => Read
POST => Create
PUT => Update
DELETE =>
HTTP Status Code
Kaynak : https://www.udemy.com/course/komple-web-developer-kursu/
https://www.gencayyildiz.com/blog/asp-net-mvc-web-api-nedir-nasil-olusturulur/ https://www.w3schools.com/xml/xml_whatis.asp
https://tr.wikipedia.org/wiki/XML
https://www.json.org/json-en.html
https://www.w3schools.com/js/js_json_intro.asp
https://tr.wikipedia.org/wiki/JSON
https://knockoutjs.com/
https://en.wikipedia.org/wiki/Knockout_(web_framework)
https://github.com/knockout/knockout
https://angular.io/
https://tr.wikipedia.org/wiki/AngularJS
https://www.w3schools.com/angular/angular_intro.asp
https://tr.wikipedia.org/wiki/HTTP
https://turk.net/blog/http-nedir/
https://www.hosting.com.tr/bilgi-bankasi/http-nedir/
https://developer.mozilla.org/en-US/docs/Web/HTTP?retiredLocale=tr
https://www.natro.com/blog/http-nedir-nasil-calisir/
https://ivantay2003.medium.com/http-status-code-1e69e3d579c1
https://www.loggly.com/blog/http-status-code-diagram/?CMP=KNC-TAD-GGL-SW_ME_X_PP_CPC_LD_EN_PROD_SW-LGL-12302661002~119270368204_g_c_-~4974906568531012782&gclid=CjwKCAjw7IeUBhBbEiwADhiEMd8L7btoO_rMJNmyy107pwzO2lb0STsmkQ89jVPszleqSkcT5pu4rBoC-T0QAvD_BwE
https://cakir.info.tr/http-durum-kodlari/
https://dev.to/kingo4luv/get-familiar-with-these-important-http-response-status-code-6ap
https://www.cenuta.com/blog/http-durum-kodlari-nedir-ve-ne-anlama-gelir/
https://tr.wikipedia.org/wiki/OSI_modeli
https://youtu.be/ZqOOUiqFtxA
https://en.wikipedia.org/wiki/Web_API
https://tr.wikipedia.org/wiki/WebSocket
https://medium.com/android-t%C3%BCrkiye/rest-api-kavramlar%C4%B1-soap-ile-farklar%C4%B1-4c6f19ddbc6c
https://blog.ertugrulgurkan.com.tr/rehber/web-servis-soap-ve-rest-nedir/
https://ceaksan.com/tr/rest-soap-api-nedir
https://www.hosting.com.tr/bilgi-bankasi/rest-api/
https://www.argenova.com.tr/web-socket-api-websockets-nedir
HTTP Durum ve Hata Kodları
Core Web Vitals Nedir? - Bilmek İstediğiniz Her Şey
Apache Web Sunucusu Nedir?
WebAssembly Nedir?
Webhook (Web Kancası) Nedir?
https://www.gencayyildiz.com/blog/node-js-websocket-nedir-nasil-kullanilir/
cihancalli.com.tr