• Buradasın

    REST ve SOAP Web Servisleri Eğitim Videosu

    youtube.com/watch?v=zHaGLZOyN-Q

    Yapay zekadan makale özeti

    • Bu video, Discus'ta yazılım mühendisi olarak çalışan Burak Kaya ve diğer eğitmenler tarafından sunulan teknik bir eğitim içeriğidir. İstanbul Konferansı'nda da sunulan içerik, REST ve SOAP web servisleri hakkında kapsamlı bilgiler sunmaktadır.
    • Video, REST API'nin temel prensiplerini (URL kullanımı, HTTP eylemleri, başlık bilgileri) açıklayarak başlıyor ve ardından SOAP web servisleri, XML formatı, WSDL ve JAX-WS gibi teknolojileri ele alıyor. Eğitim, teorik bilgilerin yanı sıra kod örnekleri, demo uygulamaları ve soru-cevap oturumları içermektedir.
    • Videoda ayrıca kimlik doğrulama, CORS (Cross-Origin Resource Sharing), veri dönüşümü ve farklı domainlerden REST servisine erişim gibi konular da ele alınmaktadır. Java kullanılarak XML-obje dönüşümleri, web servisi istemcisi geliştirme ve JAX-B kütüphanesi kullanımı gibi pratik uygulamalar adım adım gösterilmektedir.
    00:04Sunum ve Konu Tanıtımı
    • Konuşmacı Burak Kaya olarak kendini tanıtıyor ve şu an JavaScript üzerinde çalıştığını belirtiyor.
    • Twitter'da "madbyk" ve GitHub'da "rest" kullanıcı adıyla olduğunu ve bugün REST konusunu ele alacağını söylüyor.
    00:33REST Nedir?
    • REST, HTTP protokolünün düzgün ve uygun bir kullanımıdır ve resmi açılımı "Representational State Transfer"tir.
    • REST, veri veya belge yönetimi için HTTP protokolünün düzgün kullanılmasını sağlar.
    • REST, okunabilir ve anlaşılabilirlik odaklı bir yaklaşıma sahiptir.
    01:19REST'in Özellikleri
    • REST'te eylemler metin tabanlıdır ve gönderilen komutlar (POST çağrıları gibi) anlaşılır şekilde tanımlanır.
    • Düzgün URL kullanımı önemlidir; örneğin "create forum" gibi bir URL yerine belgeye uygun bir URL kullanılmalıdır.
    • Düzgün HTTP eylem kullanımı önemlidir; sadece GET ve POST yerine OPTIONS gibi çeşitli eylemler kullanılabilir.
    • Düzgün HTTP başlık bilgisi kullanımı da REST'te önemli bir unsurdur; Accept-Type, Content-Type gibi başlık bilgileri kullanılabilir.
    02:57URL ve REST Kullanımı
    • URL (Uniform Resource Locator) bir kaynağa adres göstermek için kullanılır, bir eylem değil bir belgeyi göstermek için kullanılır.
    • Her kaynağın tek bir anlamlı tanımlayıcıyla ifade edilmesi önemlidir, örneğin "blog/post/32" yerine "blog/sunumlar/32" daha anlamlı bir adresdir.
    • URL'de eylem kullanılmamalı, HTTP protokolü create, read, update, delete işlemleri için post, get, put, delete eylemlerini destekler.
    05:09HTTP Eylemleri ve Farkları
    • Create için post veya put kullanılabilir, update için put veya bazen post kullanılabilir, ancak genellikle patch kullanılır.
    • Post eylemi her tekrarlandığında yeni bir nesne oluşturur, put ise mevcut nesneyi günceller.
    • Patch, nesnenin tüm halini göndermek yerine sadece güncellenecek alanları göndererek daha verimli bir kaynak kullanımına sebep olur.
    07:21HTTP Başlıkları ve API Tasarımı
    • Accept header, sunucuya hangi formatları anladığını gösterir ve arama motoru optimizasyonu için önemlidir.
    • Veri ile sunum katmanını birbirinden ayırmak için farklı formatlar (JSON, HTML, XML, YAML) kullanılabilir.
    • Origin header, herkese açık bir API yazarak kendi uygulamanızı da bu API üzerinden çalışacak şekilde geliştirmenizi sağlar.
    11:00REST ve API Tasarımı
    • REST, veri istekleri için özel tek bir işlev tanımlamanızı sağlar.
    • Tek bir çağrı yöntemi kullanarak test etme işlemi kolaylaşır.
    • JSONP sadece okuma işlemleri için kullanılır ve REST mantığına uygun değildir.
    13:36REST API Doğru Kullanımı
    • REST API'lerde URL kısmında "create" gibi bir şey kullanmak yanlış bir yöntemdir, çünkü HTTP metodu ile API metodunu karıştırmaktadır.
    • Doğru kullanım için trades altına doğrudan bir POST çağrısı yapıp bilgileri göndermek gerekir.
    • En iyi yöntem, HTTP yönteminin ismini soyutlayarak sadece "create" gibi bir metod kullanmak ve ayrı bir URL oluşturma fonksiyonu kullanmaktır.
    15:35REST API Uyumluluğu
    • REST uyumlu olmak için sadece HTTP metotlarını doğru kullanmak yeterli değildir, URL yapısı da önemlidir.
    • Twitter gibi bazı API'lerin REST prensiplerine uymadığı, bazı HTTP metotlarını kullanmadığı belirtilmiştir.
    • GitHub, Asana ve Bugzilla gibi API'lerin REST prensiplerine daha iyi uyduğu, özellikle KarşıD'in tamamen REST üzerinden çalıştığı vurgulanmıştır.
    18:15REST API Özellikleri
    • REST API'lerde kimlik doğrulama önemli bir konudur ve çoğu API için zorunludur.
    • HTTP Basic Authentication ve token kullanmak gibi kimlik doğrulama yöntemleri vardır, ancak token'ları URL'ye gömmek önbellekleme konusunda sorun yaratabilir.
    • REST API'lerin keşfedilebilir olması gerekmektedir, yani tek bir ana bağlantı noktasından tüm alt bağlantı noktalarına erişim sağlanmalıdır.
    23:00REST API'nin Geleceği
    • REST API'ler zaten günümüzde yaygın kullanımda olup, gelecekte de önem kazanacaktır.
    • REST API'ler temel ihtiyaçları karşılayıp genişletilebilir, HTTP altyapısı üzerinden çalışır ve ölçek konusunda gereksinimleri karşılar.
    • Gelecekte herkesin bir paylaşımına odaklanacağı için REST API'ler daha da önem kazanacaktır.
    23:56REST API Alternatifleri
    • REST API'nin alternatifleri arasında SOAP ve XML tabanlı eski sistemler bulunuyor.
    • REST API, veri ile çalışırken okunabilirlik ve sürdürülebilirlik açısından daha verimlidir.
    • Web uygulaması geliştiriyorsanız, her cihaz ve program tarafından kolay kullanılabilmesi için REST, JSON veya XML ile gitmek tavsiye edilir.
    26:44Discoverability ve HATEOAS
    • REST API'nin bir amacı, istemcinin ne olduğundan habersiz kullanılabilmesidir.
    • HATEOAS (Hypertext As The Engine Of Application State) adlı teknoloji, kaynakların birbirine bağlantı kurmasını sağlar.
    • GitHub örneğinde olduğu gibi, bir kullanıcıya erişildiğinde, depoları ve diğer ilişkili kaynaklara doğrudan ulaşılabilir.
    29:44Yetkilendirme ve Session Mantığı
    • REST API, session mantığından farklı olarak her çağrıda kimlik bilgilerini göndermeyi bekler.
    • Session mantığı yerine, her çağrı izole kabul edilir ve kendi içindeki verilerle işlem yapılır.
    • REST API, verinin nasıl gösterileceği yerine nasıl transfer edileceği odaklıdır.
    31:00JSON-P ve CORS
    • JSON-P sadece GET işlemlerinde kullanılabilmekte, PUT gibi işlemler için uygun değildir.
    • CORS (Cross-Origin Resource Sharing) header'ı, farklı domainlerden REST servise erişimi sağlar.
    • Modern tarayıcılarda CORS ile farklı domainlerden veri erişimi yapılabilir.
    33:11Web Servislerin Tarihsel Gelişimi
    • Web servisleri tarihsel olarak SOAP web servislerinden bugüne kadar gelişmiştir.
    • SOAP, Simple Object Access Protocol (Basit Nesne Erişim Protokolü) anlamına gelir.
    • SOAP protokolü, nesnelerin transferini amaçlamaktadır.
    35:20Web Servislerin Tanımı ve Özellikleri
    • Web servisler, uzak çağrımlı iş yükü ve iş mantığını karşılayan birimlerden oluşur ve kullanıcı tarafından gönderilen verileri tüketerek talep edilen veriyi sunar.
    • Web servis sağlayıcıları (endpoint) sunucu tarafındaki iş mantığını oluşturur ve istemci-sunucu ve veri alışverişi dilden bağımsız nesne tanımlayıcılar (XML, JSON, BSON) ile sağlanır.
    • Web servisler, dil ve platform bağımsızlığını ortaya çıkarmak için tasarlanmıştır ve farklı programlama dilleri arasında iletişim kurmayı sağlar.
    38:52SOAP Protokolü ve Web Servis Sözleşmesi
    • SOAP (Simple Object Access Protocol), bir client'dan sunucuya nesne gönderirken kullanılan bir protokoldür ve web servisleri varsayılan olarak XML standardını kullanır.
    • SOAP web servisleri dil ve platform bağımsız servisler yazmaya olanak sağlar ve nesne alışverişi izleme türünden olur.
    • SOAP web servislerinde web servis sözleşmesi (kontrat) gereklidir ve bu sözleşmede XML ve XML bazlı standartlar kullanılır.
    41:53SOAP Mesaj Yapısı ve VSDL
    • SOAP mesajları zarflar içeriğinde gönderilir ve bu zarflar header ve body bölümlerine sahiptir.
    • Web servis sözleşmesi VSDL (Web Description Language) uzantılı dosyalarla tanımlanır ve bu standart WSDL ve XML Schema teknolojilerini barındırır.
    • Java tarafında dil bağımsız web servislerini oluşturmak için JAX-WS standartları kullanılır ve referans implementasyon olarak Metro kütüphanesi kullanılır.
    45:46Java'da XML İşleme ve Demo
    • Java'da XML işleme için JAX-B 2.2 en sık kullanılan standartlardan biridir.
    • Java nesnesini XML'e dönüştürmek için JAX-B notasyonları kullanılır ve dönüştürülmek istenen sınıfın başına @XmlRootElement notasyonu getirilir.
    • Java nesnesini XML'e dönüştürme işlemi için JAXBContext sınıfından instance oluşturulur ve marshal işlemi gerçekleştirilir.
    48:32XML ve Java Nesneleri Arasındaki Dönüşüm
    • XML verisinde yarıçapın 50 olduğu görülmekte, ancak bu değerin double türünde olduğunu bilmek için XSD teknolojisi kullanılmaktadır.
    • Unmarshaller işlemi, XML nesnesinden Java nesnesine dönüşümü sağlar.
    • XML şeması oluşturulması da mümkün olup, genel schema metoduyla sağlanır ve bu şema tür bilgilerini içerir.
    51:00Web Servis Uygulaması Oluşturma
    • Web servis uygulaması için NetBeans IDE'de bir web application projesi oluşturulmaktadır.
    • Java 1.5 sürümüyle birlikte gelen annotation desteği sayesinde, bir sınıfı web servis endpoint olarak kullanmak için @WebService annotation kullanılır.
    • Kitap nesnesi için XML dönüşümü için @XmlRootElement ve @XmlElement annotation'lar kullanılır.
    57:24Web Servis Test Etme
    • NetBeans'te web servis test sayfası oluşturulabilir ve servis metotları buradan test edilebilir.
    • Web servis sözleşmesi (WSDL) XML formatında oluşturulmuş bir dosyadır ve bu sözleşmeye uyabilen her programlama dilinden servis çağrısı yapılabilir.
    • JAX-WS standardı ile otomatik olarak WSDL ve XSD dosyaları oluşturulur, bu dosyalar web servisindeki nesnelerin şemasını içerir.
    59:29SOAP Web Servis İstemcisi Geliştirme
    • Java Web Application projesi oluşturularak "clint" adlı bir uygulama geliştirilecek.
    • Web servis istemcisi geliştirilirken, VSDL (Web Servis Sözleşmesi) dosyası kullanılarak uzaktaki bir bağlantı sağlanır.
    • VSDL dosyası indirilip, "disch code" komutu ile otomatik olarak proje yapılandırılır.
    1:01:55Web Servis İstemcisi Yapısı
    • VSDL dosyasından oluşturulan kitap nesnesi, serviste belirtilen istek ve yanıt listelerini içerir.
    • Kitap servisi interface olarak yapılandırılmış ve VSDL dosyasındaki bilgiler içermektedir.
    • İstemci tarafında "işlemci" adlı bir klasör oluşturulup, kitap servisi interface'ini implemente eden bir sınıf yazılır.
    1:03:54SOAP Web Servis Kullanımı
    • Uzaktaki sunucuda nesne elde etmek için "fake nesne" (sahte nesne) kullanılır.
    • Kitap nesnesi oluşturulup, sevkiyat, kitap adı ve yayınevi bilgileri atanır.
    • "kitap kaydet" metodu çağrılıp, servise kitap nesnesi gönderilir ve sunucu tarafında ekrana yazdırılır.
    1:08:14İstemci Tarafında Veri Alma
    • Servisten dönen değer istemci tarafında alınabilir.
    • İstemci tarafında import edilen kitap sınıfı kullanılarak, servisten gelen değeri ekrana yazdırabiliriz.
    • SOAP web servisleri, XML standardı üzerinden SOAP elemanları kullanarak mesaj iletimi sağlar.
    1:12:57SOAP ve REST Karşılaştırması
    • SOAP web servisleri artık mazide kalmış olsa da, kurumsal uygulamalar arasında hala yaygın kullanılmaktadır.
    • Yeni bir uygulama geliştirilirken, REST web servisleri tercih edilmesi tavsiye edilmektedir.
    • SOAP web servisleri XML formatını kullanırken, REST web servisleri daha esnek formata sahiptir.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor