Belajar Flask - Bagian 12
Memahami Request

oleh: Suryo Adhy Chandra, ST

Di bagian sebelumnya, kita sudah memakai request.form untuk membaca data dari form HTML. Sekarang kita akan belajar lebih dalam tentang objek request, mengenal apa itu API, dan mengenal method HTTP seperti GET, POST, PUT, PATCH, dan DELETE yang sering dipakai saat membuat API dengan Flask.

1. Mengenal objek request lebih dalam

Objek request di Flask menyimpan semua informasi tentang permintaan yang dikirim oleh browser atau aplikasi lain. Ada beberapa bagian penting dari request:

from flask import Flask, request app = Flask(__name__) @app.route("/cari") def cari(): nama = request.args.get("nama") return "Kamu mencari: " + str(nama) # dibuka lewat: /cari?nama=Budi # hasilnya: Kamu mencari: Budi

2. Apa itu API?

Ilustrasi apa itu API

API adalah singkatan dari Application Programming Interface. Sederhananya, API adalah "jembatan" yang menghubungkan satu aplikasi dengan aplikasi lain, supaya keduanya bisa saling bertukar data.

Bayangkan API seperti pelayan restoran. Kamu (aplikasi HP) tidak masuk langsung ke dapur (server), tapi memesan lewat pelayan (API). Pelayan membawa pesananmu ke dapur, lalu membawakan makanannya kembali kepadamu. Aplikasi bekerja dengan cara yang mirip: mengirim request lewat API, lalu menerima response berisi data.

Data yang dikirim lewat API biasanya berbentuk JSON, yaitu format teks yang mudah dibaca oleh berbagai bahasa pemrograman. Di Flask, kita bisa mengirim data JSON memakai fungsi jsonify().

from flask import Flask, jsonify app = Flask(__name__) @app.route("/api/halo") def api_halo(): return jsonify({"pesan": "Halo dari API Flask!"})

3. Method HTTP: GET, POST, PUT, PATCH, DELETE

Ilustrasi lima method HTTP

Saat aplikasi mengirim request ke API, aplikasi juga memberi tahu method atau "kata kerja" apa yang ingin dilakukan. Kelima method ini sebenarnya mirip dengan CRUD yang sudah kita pelajari sebelumnya.

Method Sama seperti CRUD Kegunaan
GET Read Mengambil / melihat data, tanpa mengubah apa pun.
POST Create Mengirim data baru untuk ditambahkan.
PUT Update Mengganti seluruh data yang sudah ada dengan data baru.
PATCH Update Mengubah sebagian saja dari data yang sudah ada.
DELETE Delete Menghapus data yang sudah ada.

4. Contoh API sederhana: data buku

Berikut contoh API Flask untuk mengelola daftar buku, memakai kelima method di atas sekaligus.

from flask import Flask, request, jsonify app = Flask(__name__) daftar_buku = [ {"id": 1, "judul": "Laskar Pelangi"}, {"id": 2, "judul": "Bumi Manusia"}, ] # GET semua buku @app.route("/api/buku", methods=["GET"]) def get_semua_buku(): return jsonify(daftar_buku) # POST tambah buku baru @app.route("/api/buku", methods=["POST"]) def tambah_buku(): data = request.get_json() buku_baru = {"id": len(daftar_buku) + 1, "judul": data["judul"]} daftar_buku.append(buku_baru) return jsonify(buku_baru) # PUT ganti seluruh data buku @app.route("/api/buku/<int:id_buku>", methods=["PUT"]) def ganti_buku(id_buku): data = request.get_json() for buku in daftar_buku: if buku["id"] == id_buku: buku["judul"] = data["judul"] return jsonify({"pesan": "Buku berhasil diganti"}) # PATCH ubah sebagian data buku @app.route("/api/buku/<int:id_buku>", methods=["PATCH"]) def ubah_sebagian_buku(id_buku): data = request.get_json() for buku in daftar_buku: if buku["id"] == id_buku: if "judul" in data: buku["judul"] = data["judul"] return jsonify({"pesan": "Buku berhasil diperbarui"}) # DELETE hapus buku @app.route("/api/buku/<int:id_buku>", methods=["DELETE"]) def hapus_buku(id_buku): global daftar_buku daftar_buku = [b for b in daftar_buku if b["id"] != id_buku] return jsonify({"pesan": "Buku berhasil dihapus"}) if __name__ == "__main__": app.run(debug=True)
Perbedaan PUT dan PATCH paling mudah diingat begini: PUT mengganti semua isi data (seperti mengganti seluruh isi kotak pensil), sedangkan PATCH hanya mengubah bagian tertentu saja (seperti mengganti satu pensil yang patah, tanpa membuang yang lain).

5. Mencoba API tanpa membuat tampilan HTML

Karena API biasanya tidak menampilkan halaman HTML, kita bisa mencobanya memakai aplikasi seperti Postman, atau memakai perintah curl di terminal.

curl http://127.0.0.1:5000/api/buku curl -X POST http://127.0.0.1:5000/api/buku ^ -H "Content-Type: application/json" ^ -d "{\"judul\": \"Negeri 5 Menara\"}"
Kesimpulan: request membantu Flask membaca data yang dikirim, API adalah cara aplikasi saling berkomunikasi, dan method HTTP (GET, POST, PUT, PATCH, DELETE) memberi tahu jenis kegiatan yang ingin dilakukan terhadap data tersebut.
← Kembali Ke Daftar Pelajaran Flask