Membuat REST API Sederhana dengan Python dan Flask

Pada artikel ini saya ingin membagi langkah langkah pembuatan REST API sederhana menggunanakan bahasa pemrograman Python dengan bantuan microframework Flask.

Dikutip dari website Red Hat – What is REST API
REST API adalah sebuah Application Programming Interface (API) yang mengunakan arsitektur REST atau RESTful web services. REST berarti Representational State Transfer yang dibuat oleh Roy Fielding

Ciri khas sebuah API dikatan RESTful adalah sebagai berikut:

  • Arsitektur client server. Menggunakan metode HTTP
  • Stateless
  • Cacheable
  • Layered

REST menggunakan metode HTTP dimana detailnya adalah sebagai berikut:

  • GET = READ
  • POST = CREATE
  • PUT = UPDATE
  • DELETE = DELETE

Image

Kemudian dikutip dari website Flask
Flask adalah microframework yang didukung oleh bahasa pemrograman Python. Tujuan dari Flask bertujuan untuk menyederhanakan inti/core namun dapat dikembangkan/extensible.

Pada artikel ini, saya akan mencontohkan membuat REST API sederhana untuk perhitungan Body Mass Index(BMI) dimana user akan memberikan input tinggi badan dan berat badan. Kemudian dari input tersebut akan diberikan perhitungan hasil nilai BMI-nya dan apakah kategori BMI nya, apakah berat badan nya kurang (underweight), normal (normal weight) atau kelebihan berat badan (overweight).

Selama development script, saya menggunakan python versi 3.7

Berikut langkah-langkah konfigurasi REST API sederhana menggunakan Python dan Flask:

  1. Disarankan untuk membuat virtual environment sebelum memulai konfigurasi.

  2. Install Flask melalui pip

    Pada Windows:

     pip install Flask  
    

    Pada Linux:

     pip3 install Flask  
    
  3. Buat file extension python, misal api.py. Hal yang pertama yang dilakukan adalah import librarty Flask dan definsikan nama app

     from flask import Flask, request, jsonify
    
     app = Flask(__name__)  
    

    Image

  4. Selanjutnya buat route. Pada app route kita akan mendifinisikan url route yang digunakan untuk mengirim request ke API dan juga metode http yang digunakan. Di bagian ini kita akan membuat 1 function. Pada function ini berisi variable height and weight yang akan meminta input tinggi dan berat dari user. Kemudian function ini juga akan memproses nilai bmi dan label yang didapat dari function bmi_calculation dan bmi_label yang akan didefinisi setelah bagian ini. Output dari function ini adalah bmi dan label yang ditampilkan dalam format json

     @app.route("/api", methods=["POST", "GET"])
     # Get user input and display bmi and label in json format
     def input():
       height = float(request.args.get("height"))
       weight = float(request.args.get("weight"))
       bmi = bmi_calculation(height, weight)
       label = bmi_label(bmi)
       return jsonify({"bmi": bmi, "label": label})  
    

    Image

  5. Selanjutnya buat function untuk perhitungan bmi dan label dari hasil perhitungan bmi. Nilai dari perhitungan kedua function ini yang diambil pada function di poin sebelumnya.

     # calculate BMI based on user weight and height
     def bmi_calculation(height, weight):
       return round(weight / (height / 100) ** 2, 2)
    
     # set BMI label based on user BMI 
     def bmi_label(bmi):
         if bmi < 18.5:
             label = "Underweight"
         elif bmi >= 18.5 and bmi <= 24.9:
             label = "Normal weight"
         elif bmi >= 25.0:
             label = "Overweight"
         return label 
    

    Image

  6. Pada bagian berikutnya, berikan instruksi agar aplikasi berjalan di host dengan ip berapa dan port berapa.

     if __name__ == "__main__":
       app.run(host="0.0.0.0", port="5000", debug=True)  
    

    Image

  7. Setelah itu simpan file api.py. Kemudian jalankan script api.py.

    Pada Windows:

     python api.py  
    

    Pada Linux:

     python3 api.py 
    

    Image

  8. Setelah script berjalan. Kita dapat memastikan apakah API sudah berjalan sesuai yang diharapkan. Pada langkah ini kita bisa gunakan aplikasi semisal Postman untuk simulasi. Gunakan metode POST, kemudian masukan url yang didefinisikan di app route. Misal http://localhost:5000/api. Kemudian tambahkan key height dan weight, masukkan nilai tinggi dan berat badan.

    Image

  9. Setelah dari postman kita sudah mendapatkan nilai yang diharapkan, kita juga dapat mencoba untuk akses url REST API via web browser. Pada url bar ketik url dan key input API, misal http://localhost:5000/api?height=175&weight=74

    Image

Source code pada artikel ini juga dapat dilihat lebih detail dari github saya di link berikut lanandra-bmi-calculator. Silahkan untuk dicek lebih lanjut.

Sekian informasi dari saya dan semoga bermanfaat.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

Situs yang Didukung WordPress.com.

Atas ↑

%d blogger menyukai ini: