Şimdi Ara

Json nedir rest api nedir?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
11
Cevap
1
Favori
3.133
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
1 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar json ile kendi oluşturduğumuz veri tabanından veri çekiyorken rest api de başka sitelerden vs. mi veri çekiyoruz?



  • mesela imdb'den bir tane film hakkında veri almak istiyorum,

    bu site mesela bunun için api yapmis.

    film hakkindaki bilgileri de JSON formatında döndürüyor.

    http://www.omdbapi.com/?t=interstellar&y=&plot=short&r=json
  • quote:

    Orijinalden alıntı: funky-nd

    mesela imdb'den bir tane film hakkında veri almak istiyorum,

    bu site mesela bunun için api yapmis.

    film hakkindaki bilgileri de JSON formatında döndürüyor.

    http://www.omdbapi.com/?t=interstellar&y=&plot=short&r=json

    Hocam, biraz daha açıklayıcı olur musun?

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: Brokereren55


    quote:

    Orijinalden alıntı: funky-nd

    mesela imdb'den bir tane film hakkında veri almak istiyorum,

    bu site mesela bunun için api yapmis.

    film hakkindaki bilgileri de JSON formatında döndürüyor.

    http://www.omdbapi.com/?t=interstellar&y=&plot=short&r=json

    Hocam, biraz daha açıklayıcı olur musun?

    Yukarıdaki arkadaşın verdiği link sana json formatında bi metin gönderiyor. Sen bu metni alıp kendi programında nesneye dönüştürüyorsun. Ondan sonra program içersinde istediğin yerde kullanıyosun. Mesela anasayfada imdb top 20 filmlerini gösteriyosun gibi.




  • :) JSON 2000'lerde yaygınlaşmış, günümüz web şartlarına daha uygun bir format sadece. Veri gösterim formatı. Javascript 'ten türetilmiş bir formatta yani Javascript te direkt, diğer dillerde ise yardımcı kod veya json kütüphanesi gibi eklemeyle kullanılabilen bir format. 1990'larda CSV, sonradan XML'in kullanıldığı alanda yeni bir format yani. Aynı alanda YAML diye bir format daha var ki o da Ruby On Rails te kullanılıyor veya tercih ediliyor diyelim. Ben örneğin REST API'mi JSON yerine YAML veya XML veya CSV ile yapabilirim, tercih meselesi. Hatta gidip düz metin ile TXT formatında dahi yapabilirim, ancak bir şartla: metin içindeki veriler ayrıştırılabilir olacak.

    REST API ise web'teki sayfaların sadece bir sayfa olmanın ötesinde birer veri kaynağı gibi düzenlenmesiyle ilgili bir sistemin adı. Ruby on Rails'te örneğin yeni sayfa oluştururken new page değil, new resource denilir ve yeni sayfalar "rails generate resource yeni-sayfam" şeklinde bir komut ile oluşturulur. Bu şekilde oluşturma Rails'in temelden REST API 'ye sahip olduğu anlamına da gelir ki Rails tutoriallarında yeni sayfa (yani resource) oluşturduktan sonra Rails kod yapısı içinde respond_to diye bir metod ile "respond_to :html" şeklinde çağrı ile resource'un html sayfasına dönüşeceği belirtilir. Aynı resource Atom Feed gibi istemci tarafından da kullanılacaksa, "respond_to :html, :atom" şeklinde eklenir. Yani REST API programcı için işleri kolaylaştırır.




  • quote:

    Orijinalden alıntı: revivo72

    :) JSON 2000'lerde yaygınlaşmış, günümüz web şartlarına daha uygun bir format sadece. Veri gösterim formatı. Javascript 'ten türetilmiş bir formatta yani Javascript te direkt, diğer dillerde ise yardımcı kod veya json kütüphanesi gibi eklemeyle kullanılabilen bir format. 1990'larda CSV, sonradan XML'in kullanıldığı alanda yeni bir format yani. Aynı alanda YAML diye bir format daha var ki o da Ruby On Rails te kullanılıyor veya tercih ediliyor diyelim. Ben örneğin REST API'mi JSON yerine YAML veya XML veya CSV ile yapabilirim, tercih meselesi. Hatta gidip düz metin ile TXT formatında dahi yapabilirim, ancak bir şartla: metin içindeki veriler ayrıştırılabilir olacak.

    REST API ise web'teki sayfaların sadece bir sayfa olmanın ötesinde birer veri kaynağı gibi düzenlenmesiyle ilgili bir sistemin adı. Ruby on Rails'te örneğin yeni sayfa oluştururken new page değil, new resource denilir ve yeni sayfalar "rails generate resource yeni-sayfam" şeklinde bir komut ile oluşturulur. Bu şekilde oluşturma Rails'in temelden REST API 'ye sahip olduğu anlamına da gelir ki Rails tutoriallarında yeni sayfa (yani resource) oluşturduktan sonra Rails kod yapısı içinde respond_to diye bir metod ile "respond_to :html" şeklinde çağrı ile resource'un html sayfasına dönüşeceği belirtilir. Aynı resource Atom Feed gibi istemci tarafından da kullanılacaksa, "respond_to :html, :atom" şeklinde eklenir. Yani REST API programcı için işleri kolaylaştırır.

    Çok teşekkürler..




  • Merhaba,
    REST konusuna bir iki ufak ekleme yapmak istiyorum.
    Rest temel olarak sunucu/istemci arasinda veri transfer etmek icin duzenlenmis bir protokoldur. Eskiden sunucu/istemci arasinda veri transferi yok muydu tabi ki vardi ama bu isleri belirli bir duzene/standarda oturtup kolayce halletmek icin ortaya cikmistir. Genelde web servisler icin kullanilir. Web servislerde kullanilan bir baska yontem de SOAP ki ikisi arasindaki farklardan da biraz bahsedersek neden kullanildigi/populer oldugu biraz daha ortaya cikar. Bundan sonraki kisimda tam turkce karsiligini bilmedigim icin ingilizce terimler kullanacagim kusura bakmayin.

    Oncelikle rest'in acilimi "representational state transfer" kisaca her unique url bir objenin/verinin temsili olmasi gerekli.

    rest api lerde json kullanmak zorunda degilsiniz. json bir veri gosterim formatidir, revivo da aciklamis zaten guzelce. islenmesi/yaratilmasi kolay ve hizli oldugundan populer bir formattir.
    Rest'te sadece http protokolu uzerinden iletisim kurabilirsiniz, soap tcp/udp/smtp kullanabilir kullanilabilir.
    Rest request yapildiginda client-server arasinda content negotiation yapilir oncelikle. Client http request yaptiginda header'da "accept" ile hangi formatta veri istedigini belirtir. application/json, application/xml, text/plain gibi. Sunucu bu veri tipine cevap verebiliyorsa istegi kabul eder. Ardindan yine request headerdaki 'content-type" a bakar ki request body'de ne geliyor bilip islesin diye.
    Ardindan body alinir islenir ve response olusturduktan sonra response tipini bu sefer response header'a "content-type" olarak yazar ki client alip veriyi isleyebilsin.
    SOAP'da ise hem request hem de response xml formatindadir.

    Rest protokolunda http metodlarini kullanabilirsiniz. Ayni url icin farkli metodlarla farkli islemler yapabilirsiniz. Ornegin bir alisveris sepetiniz olsun site.com/basket diye bir url'iniz oldugunuzu fazediyorum. GET: listeleme
    POST: ekleme
    PUT: guncelleme
    DELETE: silme

    fonksiyonlari ile ilgili islemleri yapabilirsiniz. SOAP sadece POST metodu kullanir. HEAD, OPTIONS, CONNECT, TRACE metodlari da nadiren kullanilabilir.

    Rest staless calisir. Tam turkce karsiligi ne bilmiyorum ama kisaca her request-response birbirinden bagimsizdir. client - server arasinda herhangi bir state tutulmaz session gibi. sunucu icin her client aynidir, herkese ayni muamele yapilir.

    Rest daha kolay cache'lenebilir ( cok kotu turkce oldu malesef ) bunun icin yine if-modified-since, expires, last-modified gibi http headerlari uzerinden anlasilarak yapilir bu.




  • bestanealtcizgi B kullanıcısına yanıt
    Eline sağlık hocam. Bir de ufak bir sorum. Benim rest kullanabilmem için karşı tarafın benimle apilerini paylaşması gerekiyor değil mi? Kafama göre istediğim yerden istediğim şeyi çekemiyorum.
  • Brokereren55 kullanıcısına yanıt
    Tekrar merhaba,
    rest protokolunda soap'ta oldugu gibi servislerin tanimlarinin bulundugu bir wsdl dokumani olmadigi icin ( wadl diye birsey uydurdular tutmadi ) genelde bu api'yi hazirlayanlar nasil kullanilacagina dair bir dokuman da paylasir. Ornek olarak twitter api dokumanina bakabilirsinizhttps://dev.twitter.com/rest/public
    herkes api'lerini public acmadigi icin bu kadar detayli dokuman hazirlamiyor ki bunlarin guncellenmesi versiyonlanmasi da ayri bir mesele. bu yuzden genel api dokumani yazildiktan sonra end-point ler kodlanirken bazi annotationlar ile inline documentation da yazilip bu end-pointler'in metodlari, url bilgileri ( path ve query parameter bilgileri genelde ), request/response veri yapilari icin kullanici ara yuzu hazirlayan plug-in ler var. ornek olarak swagger'a bakabilirsiniz.
    ayrica yine authorization&authentication icin sifre, token vs. de paylasabilirler.

    aslinda rest api'ler sensible ( hissedilebilir, anlasilabilir ) tasarlanmasi gerektiginden ( ideal dunyada ) url leri ve temel kullanimi anladiysaniz gerisini kolayca cozebilirsiniz.

    yari turkce yari ingilizce oldu kusura bakmayin lutfen.
    '




  • bestanealtcizgi B kullanıcısına yanıt
    hocam merhaba ,

    www.xxxxx.com/bestanealtcizgi

    örnegın burada kullanıcı adınızı yazdım bana toplam mesaj sayınız hangı yılda uye olmussunuz falan bu bılgılerı getıren bır web service metodu yazdım
    peki yeni bir kullanıcı eklemek ıcın bır metod yazmam lazım ben debu konuda sıkıntı cekıyorum. Bunu ne sekılde yapabılırım
    ornegın bır projede bu web service kullanıcı adı ve sıfre strıngı gonderecegım bunu verıtabanına ekleyecek.GET metodu tamam da POST metodu sıkıntı çıkardı bende



    < Bu mesaj bu kişi tarafından değiştirildi flowerhorn -- 15 Eylül 2016; 22:53:11 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • flowerhorn kullanıcısına yanıt
    merhaba,
    post methodunda ne sikinti yasadiniz?
    genelde yasanan sikinti post ile gonderdiginiz content type ise post metodunu alan end-point in accept taypi tutmali.
    rest kullandiginiza gore json post ettiginizi varsayiyorum, post requestinde content-type='application/json' request header'i gonderin, end poinst te ise accept type olarak yine aynisini belirleyin.
    eger 400, 406 gibi response lar aliyorsaniz muhtemel bu yuzdendir.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.