RESTful API'lar ve JSON ile RPC
Вставка
- Опубліковано 30 вер 2024
- Uzun bir aradan sonra RPC konusuna giriyoruz! REST konsepti ile RESTful API'lar arasındaki ilişki ne? Büyük şirketlerde servisler birbirleriyle neden JSON tabanlı RESTful API'lar üzerinden konuşmaz. Bu bölümde JSON formatının API bağlamında sıkıntılarını ele alıyoruz.
Linkler:
* REST doktora tezine yuklenen ekstra anlamlar ve nasil bu duruma geldik twobithistory....
* Ornek iki binary encoding formati (Apache Thrift ve Protobuf) ebrary.net/646...
► Kanala Abone olup bildirimleri açmayı unutmayın!
► Sorularınızı videolara yorum olarak ekleyin ve tartışalım.
► Canlı yayınlardan haberdar olmak için:
Twitter: / ahmetb 'den beni takip edebilirsiniz.
Discord: bit.ly/ahmetb-... üzerinden gruba sorular sorabilirsiniz.
Çok güzel haberler Ahmet. Bir yastıkta kocayın! :)
Çok sevindim abi yeniden video çekmeye başlamana. Yeni video ne zaman gelir plan yaptın mı ?
Haftaya. 😇
Ben bir projemde backend için nodejs kullanıyorum, hem api geliştirmesi kolay hem mongodb ye bağlamak, redis e bağlamak kolay hem de socketio kütüphanesi ile bidi iletişimi çok rahat yazabildiğim için tercih ettim. Socketio iletişim için bazı kısımlarda bir string gönderirken bazı kısımlarda json gönderiyorum, api iletişimi için ise yalnızca json kullanıyorum. Client olarak android uygulaması yazdım ve json parse yapıyorum. Sizce bunu bırakıp yerine protobuf kullanmam daha mı mantıklı olur? Ben 10larca servise sahip 10larca farklı client i olan bir sistem tasarlamadım, tek bir monolitic server ve tek bir client kullandım.
Nodejs kullanmamda herhangi bir sakınca yokmuş onu gördüm. Nodejs ile de grpc kullanılabilirmiş, burada dil önemli değil, sonuçta bu bir protocol. json veya xml yerine protobuf kullanıyoruz. Yalnızca burada kafama takılan şey şu ki: nodejs de bir nesneyi genellikle karşı tarafa doğrudan gönderebiliyoruz ve json olarak algılanıyor. işlemciye ek yük oluşturmuyor sanırım, ancak protobuf için formatladığımızda işlemciye ek yük oluşturmuyor mu?
@@Bkr_C48 cevabını aldın mı veya bulabildin mi ?
@@schruteman7444 bence küçük projelerde önemli bir avantajı yok, protofuf kullanmanın. Sonuçta bandwith i azaltıyor, ki bandwidth pek önemli değil. Saniyede binlerce istek gelseydi belki mantıklı olurdu. Kendi projelerimde json a devam, sadece başka bir projeye dahil olursam ve orada protobuf var ise protobuf kullanırım.
Kanalı bıraktınız diye gerçekten çok üzülmüştüm geri gelmeniz harika haber! Bu arada mutluluklar dilerim:)
Hayırlı olsun. Video için de teşekkürler :)
PUT/PATCH: güncelle ve POST: yarat olucaktı.
Bilmeyip, burdan yeni öğrenecekler için yalnış bilgi olmasın istedim.
Emin degilim bu dogru mu.. PUT ile de yaratma yapilan bir cok API var.
@@ahmetb, anlıyorum. Yalnız şöyle ki, put ile yaratma actions olan api'lar ola bilir, ancak standards post'u yaratma, put'u yenileme için kullanın diyor.
Yani yaratma için put kullanıla bilir, lakin api specific olur.
Umarım açıklayıcı ola bildim.
Nerede diyor linkle bakalim. :)
@@ahmetb, 📎 www.restapitutorial.com/lessons/httpmethods.html
Buradan bakılabilir (table'da hangi http method hangi crud operation'a denk geliyor belirtilmiş).
Aslında sizde yanlış aramıyorum, tam tersine paylaştığınız bilgiler çok faydalı ve mümkün oldukça almaya çalışıyorum bu bilgileri sizden, ve bunu için çok teşekkür ederim size (emekleriniz ve sadeliğiniz için) ✌🏻
Sorun şu ki, bazen belirtidiğim gibi yeni başlayan biri için common'u öğrenip üzerine specific case'leri görmesi daha verimli oluyor, onun için videodakinden farklı bildiğim bir şeyi paylaşmak istedim bu community ile.
Umarım yanlış anlaşılmamışım ❤
@@nurantarlan videoyu izlememissin. bahsettigin dokuman "Standart" falan degil, milletin uydurdugu bir sey.
Cok kisa bir deginmissin ancak OpenAPI 3.0 ve Swagger bu tarz uyumsuzluklari cok büyük oranda hallediyor. Ancak requestlerin/response veri büyüklügü konusunda RESTful API'larin dezavantajlari var.
Abi selamlar tebrik ederim :)
Tebrik ederim, özlettiniz.
sen bir hatayı düzelt daha da birşey istemem
StreamJsonRpc.ConnectionLostException : The JSON-RPC connection with the remote party was lost before the request could complete. ---> System.OperationCanceledException : İşlem iptal edildi.
at System.Threading.CancellationToken.ThrowOperationCanceledException()
at async StreamJsonRpc.MessageHandlerBase.WriteAsync()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at async StreamJsonRpc.JsonRpc.SendAsync()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at async StreamJsonRpc.JsonRpc.InvokeCoreAsync()
--- İç özel durum yığın izlemesi sonu ---
at async StreamJsonRpc.JsonRpc.InvokeCoreAsync()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at async StreamJsonRpc.JsonRpc.InvokeCoreAsync[TResult]()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at async Microsoft.CodeAnalysis.Remote.BrokeredServiceConnection`1.TryInvokeAsync[TService,TResult]()
Ben bu adamı çok sevdim nedense sürekli dinleyesim geliyor :)
Muluklar dilerim. Kendinide çok özletme, videoların kaliteli içerikler.👏🏼
mutluluklar
Bak şimdi tüm projemi çevirttiriceksin bana. Genelde bir birim işlemi yapmak için dahi sanki milyon birim iş yapacakmış gibi tasarlamayı sevdiğim için rest'den vazgeçireceksin beni . Bu arada hayırlı olsun , anasayfada yeni video görünce bi sevinmedim değil.
“Ne durumlarda REST kullanmaya devam etmeliyiz” bölümü 5 hafta falan sonra gelecek. Ama deneyin ögrenin tabi.
Abi hayırlı olsun
Enfes bir giris olmus.
efsane geri donmus
Mutluluklar :)
Mutluluklar hocam
Bayadır içerik bekliyordum, kaliteli içerik bulmak zor :)
Discord server'imizda icerik her zaman var. ;)
Tebrikler