Python 및 Flask 도구 모음 웹 API 지원

11527 단어

바스리클라르


  • API Nedir?
  • Web API Nedir?
  • Kurulum
  • Web API Geliştirme

  • API 네디르?

    API yani Application Programming Interface’in Türkçe karşılığı Uygulama Geliştirme Ara yüzü anlamına gelmektedir. Kişinin elindeki verileri dış dünyaya açarak diğer uygulama ve platformların kullanımına belli kurallar ve tanımlamalar çerçevesinde sunduğu ara yüzdür.

    웹 API 네디르?

    Birden fazla end user’ın bilgisayarlar, web tarayıcıları, akıllı telefonlar, tabletler vs. aracılığı HTTP protokolleri üzerinden haberleşelebilen bir servis oluşturmak için kullanılan bir framework olarak çalışmaktadır.
    HTTP’nin tüm özelliklerini (URI, Request/Response headers, caching yani önbelleğe alma, versiyonlama, çeşitli içerik formatları gibi özellikler) kullanabilen, HTTP üzerinde kaynak odaklı servisler oluşturmak istediğinizde Web API kullanmanız daha sağlıklıdır.

    쿠룰룸

    Öncelikle Python’da oldukça popüler olan pip3 paket yöneticisini kuralım. Eğer pip3 yüklüyse bu adımı geçebilirsiniz.

    sudo apt-get install python3-pip
    

    Şimdi ise pip ile Flask kurmaya hazırız.

    pip install flask
    

    Kurulumumuzu tamamladık, şimdi bu dökümanda ne yapacağımızdan kısaca bir bahsedelim.

    웹 API

    Her siteye girdiğinizde base URL dediğimiz ana sayfa bulunmaktadır. Sizin yaptığınız tercihler ile farklı konumlara request atılır ve bu base URL’in sonuna bir path eklenir.

    Base URL:

    dev.to
    

    Örneğin, dev.to sitesine girdiğinizde ana sayfaya yönlendirilirsiniz. Fakat benim profilime girmek için adıma tıkladığınızda URL’nin sonuna aşağıdaki path’in eklendiğini görebilirsiniz.

    /koraybarkin
    

    Bu path kendi başına hiçbir işe yaramamaktadır, fakat base URL’imiz ile birleştiğinde dev.to sitesinde koraybarkin kullanıcısının profiline yönlendirmektedir.

    https://dev.to/koraybarkin
    

    Şimdi başka bir örnekten daha detaylı inceleyelim.

    http://chroniclingamerica.loc.gov/search/pages/results/
    

    Yukarıdaki URL’nin sonuna bir path eklenmiş ve bir sorgunun cevabı yansıtılmış. Şimdi ise parametre göndermenin ne işe yaradığını öğrenelim. Bu sitedeki aramamızın sonucunu parametre göndererek manipüle edebiliriz.

    http://chroniclingamerica.loc.gov/search/pages/results/?format=json&proxtext=fire
    

    Yukarıda görmüş olduğunuz gibi “?” işareti her bir query parametresinin başında yer yer almaktadır. Her bir query, & işareti ile birbirinden ayrılmaktadır. Yukarıdaki format=json query’si sayfadaki veriyi bize JSON halinde göstermesi için bir sorgudur. İkinci olarak da proxtext=fire sorgusu o sayfada yaptığımız aramayı spefisikleştirmektedir.

    Şimdi bu terminolojileri anladığımıza göre Flask ile basit bir API yapalım.
    İlk önce bir klasör açalım ve adına projeler diyelim. Daha sonra bu projeler klasörünün içerisine api adında bir klasör daha açalım ve bu api klasörünün içerisine de bir Python dosyası açalım (.py uzantılı) ve içerisine aşağıdaki kodu yapıştıralım.

    import flask
    
    app = flask.Flask(__name__)
    app.config["DEBUG"] = False
    
    
    @app.route('/', methods=['GET'])
    def home():
        return "<h1>dev.to/koraybarkin Flask ile Web API geliştirme</h1><p>Tebrikler ilk Web API'ınızı başarıyla geliştirdiniz!</p>"
    
    app.run()
    

    Daha sonra yaptığımız değişiklikleri kaydedip çalıştıralım. Her şey düzgün gittiyse aşağıdaki gibi bir sonuç almalısınız.

    * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

    Şimdi çıktımızda yazan http://127.0.0.1:5000/ adresine gittiğimizde aşağıdaki gibi bir ekrana ulaşıyor olmalısınız.

    웹 API에 대한 기본 정보를 확인하십시오. Aşağıdaki kodu python dosyamıza yapıştıralım ve değişiklikleri kaydedelim. Daha sonra tekrar çalıştırdıgımızda ana sayfamızdaki yazının 할라 aynı şekilde kaldığını 괴레빌리리즈. Peki bu eklediğimiz books array'indeki data nereye gitti? Kodu dikkatlice incelerseniz giriş ekranına bir/api/v1/resources/books/all path'ine jsonify(books) fonksiyonunu gonderdiğimizi gorebilirsiniz.

    import flask
    from flask import request, jsonify
    
    app = flask.Flask(__name__)
    app.config["DEBUG"] = False
    
    # Create some test data for our catalog in the form of a list of dictionaries.
    books = [
        {'id': 0,
         'title': 'A Fire Upon the Deep',
         'author': 'Vernor Vinge',
         'first_sentence': 'The coldsleep itself was dreamless.',
         'year_published': '1992'},
        {'id': 1,
         'title': 'The Ones Who Walk Away From Omelas',
         'author': 'Ursula K. Le Guin',
         'first_sentence': 'With a clamor of bells that set the swallows soaring, the Festival of Summer came to the city Omelas, bright-towered by the sea.',
         'published': '1973'},
        {'id': 2,
         'title': 'Dhalgren',
         'author': 'Samuel R. Delany',
         'first_sentence': 'to wound the autumnal city.',
         'published': '1975'}
    ]
    
    
    @app.route('/', methods=['GET'])
    def home():
        return '''<h1>dev.to/koraybarkin Flask ile Web API geliştirme</h1><p>Tebrikler ilk Web API'ınızı başarıyla geliştirdiniz!</p>'''
    
    
    # A route to return all of the available entries in our catalog.
    @app.route('/api/v1/resources/books/all', methods=['GET'])
    def api_all():
        return jsonify(books)
    
    app.run()
    


    Şimdi ise aşağıdaki path'i yazıp sonuca bakalım.

    http://127.0.0.1:5000/api/v1/resources/books/all
    


    Books array'indeki tüm veriyi alıp, jsonify() fonksiyonu ile json haline getirdik ve ekranımıza yansıttık. 현재 상태 유지 관리, API 사용 가능 여부!

    좋은 웹페이지 즐겨찾기