Rest API hakkında

Tyrist

Hectopat
Katılım
12 Nisan 2021
Mesajlar
312
Daha fazla  
Cinsiyet
Erkek
Meslek
Bilgisayar Mühendisi
Merhaba, Flutter ile uygulama yapmak istiyorum. Vertabanı MySQL kullanacağım. MySQL'den verleri Django ile rest API yapıp Flutter'a göndermek istiyorum.
Araştırma yapıyorum, ama yeterli kaynak bulamadım. Kafama takılan iki soru var.
Birincisi, gördüğüm kadarıyla API yazıldıktan sonra o URL'ye giren herkes sorgunun sonucunh görebiliyor. Ama sadece Flutter üstünen gelen sorgulara crvap verilsin, birisi tarayıcıdan o URL'ye giderse cevap alamasın istiyorum. Bunun için ne bilmem gerekiyor, nasıl yapılıyor?
İkincisi de en çok kafama takılan kısım bu, sorguları Django üzerinden mi yapmalıyım yoksa Flutter üstünden mi? 200 tane sorgum olacak diyelim. Hepsi için Django'da ayrı ayrı URL mi oluşturmam gerekiyor. Mesela domain.com/api/yazargetir, domain.com/api/habergetir, domain.com/api/haberekle gibi gibi, bir de bunların filtrelenmiş olması gerekecek, onlara ayrı gibi mi oluşturuluyor. Yoksa bir URL oluşturulup sorgu ve parametreler Flutter üstünden mi gönderilir? Bunun cevabını bulamadım. Yardımcı olur musunuz?
 
Son düzenleyen: Moderatör:
Sadece uygulamadan gelmelerini kesin olarak saglayamazsin. Atilan istekleri yeterince inceleyen bir kullanici bunu mimikleyebilir.

Isteklerin sadece uygulamandan gelmesini saglamak yerine, istekleri dogru sekilde authorize etmeye calisabilirsin OAuth gibi yapilar kurarak. Boylecek isteklerin nereden geldigini garanti edemesen de kimin tarafindan atildigini garantilemis olursun.

Eger RESTful yapacaksan her "resource" icin ayri API grubu olusturmalisin. GraphQL gibi yapilar da kurabilirsin ama onun da gelistirme maliyeti farkli olacaktir, silver bullet yok.
 
Tavsiyem Django gibi sistemlerde kendin sıfırdan API sistemi yapmaman. Bunun yerine API kısmını fastapi kütüphanesi ile yapabilirsin. JWT token sayesinde istediğin güvenlik seviyesine de ulaşabilirsin. Eğer ki dışarıdan istekleri tamamen kapatmak istiyorsan fastapi ile ayağa kaldırdığın portun erişimini sadece Localhost'a izin verebilirsin. Bu sayede dışarıdan erişimi tamamen engellemiş olursun.
 
Tavsiyem Django gibi sistemlerde kendin sıfırdan API sistemi yapmaman. Bunun yerine API kısmını fastapi kütüphanesi ile yapabilirsin. JWT token sayesinde istediğin güvenlik seviyesine de ulaşabilirsin. Eğer ki dışarıdan istekleri tamamen kapatmak istiyorsan fastapi ile ayağa kaldırdığın portun erişimini sadece Localhost'a izin verebilirsin. Bu sayede dışarıdan erişimi tamamen engellemiş olursun.
Localhost kısmını tam anlayamadım.
 
Localhost kısmını tam anlayamadım.

Aynı sunucu üzerinden istek göndereceksen ve isteği backend tarafından göndereceksen sadece localhosta açık olarak yapabilirsin dışarıdan erişime kapalı olur. Farklı sunucuda olacaksa bile IP engeli koyabilirsin sadece senin makinenden giden istekleri kabul eder JWT ile ekstra koruma sağlarsın. Örneğin PHP de curl isteği sunucunun kendi IP'si üzerinden gider. Aynı makine üzerindeyse bunu localhosta yani 127.0.0.1'e limitleyebilirsin. Bunu demek istedim.

Localhostu bende anlamadım, Fastapi'yi inceleyeceğim.

Bunu dememin sebebi Flutter'in nasıl çalıştığı ya da çalışma mantığıyla ilgili tam bilgimin olmaması. Web tarafı üzerinden düşünüp örnek verdim. Diğer türlü JWT ile koruyup fastapi ile daha düzgün bir API yazabilirsin.
 
Aynı sunucu üzerinden istek göndereceksen ve isteği backend tarafından göndereceksen sadece localhosta açık olarak yapabilirsin dışarıdan erişime kapalı olur. Farklı sunucuda olacaksa bile IP engeli koyabilirsin sadece senin makinenden giden istekleri kabul eder JWT ile ekstra koruma sağlarsın. Örneğin PHP de curl isteği sunucunun kendi IP'si üzerinden gider. Aynı makine üzerindeyse bunu localhosta yani 127.0.0.1'e limitleyebilirsin. Bunu demek istedim.



Bunu dememin sebebi Flutter'in nasıl çalıştığı ya da çalışma mantığıyla ilgili tam bilgimin olmaması. Web tarafı üzerinden düşünüp örnek verdim. Diğer türlü JWT ile koruyup fastapi ile daha düzgün bir API yazabilirsin.
Flutter kullanılacağı için ip sınırlaması yapılamaz sanırım, çünkü kullanıcı hedef kitlesi çok büyük. Hangi cihaz ve ip’den istek geleceği belli değil.
 
Flutter kullanılacağı için IP sınırlaması yapılamaz sanırım, çünkü kullanıcı hedef kitlesi çok büyük. Hangi cihaz ve IP'den istek geleceği belli değil.

Doğrudur nasıl çalıştığını dediğim gibi bilmiyorum, web tarafı üzerinden örnek verdiğim için bu şekilde söyledim. Flutter'in mantığı ile ilgili bir bilgim yok.
 

Technopat Haberler

Yeni konular

Geri
Yukarı