7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. Flask

Membangun RESTful API dengan Flask: ORM dengan SQLAlchemy

Scroll to top
Read Time: 3 mins
This post is part of a series called Building RESTful APIs With Flask.
Building RESTful APIs With Flask: The DIY Approach
Building RESTful APIs With Flask: ORM Independent

Indonesian (Bahasa Indonesia) translation by Aditia Dwiperdana (you can also view the original English article)

Dalam bagian pertama seri tutorial tiga bagian ini, kita lihat bagaimana cara membuat RESTful API kita sendiri menggunakan Flask sebagai framework web. Pendekatan sebelumnya memberi kita banyak fleksibilitas tapi melibatkan menulis banyak kode yang seharusnya dihindari pada umumnya.

Pada bagian ini, kita akan gunakan ekstensi Flask, Flask-Restless, yang akan menghasilkan RESTful API untuk model database yang didefinisikan dengan SQLAlchemy. Saya akan gunakan contoh aplikasi yang sama seperti bagian sebelumnya dari seri ini untuk mempertahankan konteks.

Menginstall Dependencies

Karena melanjutkan dengan aplikasi yang kita buat di bagian pertama, kita hanya perlu menginstall satu dependency:

Aplikasi

Flask-Restless membuat menambahkan antarmuka RESTful API ke model yang dibuat dengan SQLAlchemy sangat mudah. Pertama, tambahkan REST APIManager dari ekstensi flask.ext.restless ke file konfigurasi aplikasi.

flask_app/my_app/__init__.py

Hanya dengan menambahkan beberapa baris kode di atas sudah cukup.

flask_app/my_app/catalog/views.py

File ini berisi sejumlah perubahan dari bagian sebelumnya. Berikut adalah file yang sudah ditulis kembali secara lengkap.

Kode diatas harusnya cukup bisa menjelaskan dirinya sendiri. Kita baru saja mengimpor manager yang dibuat di file sebelumnya, dan digunakan untuk membuat API untuk model Product dengan methods yang terdaftar. Kita bisa menambahkan fungsi lain seperti DELETE, PUT, PATCH, dan lain-lain sesuai kebutuhan.

Aplikasi Beraksi

Kita uji aplikasi ini dengan membuat beberapa produk dan mendaftarnya. Titik akhir yang dibuat oleh ekstensi ini adalah http://localhost:5000/api/product.

Seperti yang saya lakukan di bagian sebelumnya di seri tutorial ini, saya akan menguji menggunakan library requests di terminal.

Cara untuk Menyesuaikan

Akan sangat menguntungkan memiliki RESTful API yang dibuat otomatis, tapi setiap aplikasi akan memiliki beberapa logika bisnis yang perlu penyesuaian, validasi, dan penanganan yang pintar/aman untuk menangani request sesuai kebutuhan.

Di sini, preprocessor dan postprocessor request akan membantu kita. Sesuai dengan namanya, fungsi yang ditunjuk sebagai preprocessor berjalan sebelum memproses sebuah request, dan fungsi yang ditunjuk sebagai postprocessor berjalan setelah request diproses. create_api() adalah tempat untuk mendefinisikan fungsi-fungsi tersebut sebagai kamus untuk jenis request (GET, POST, dan lain-lain) dan fungsi yang bersangkutan sebagai list yang akan digunakan sebagai preprosesor atau postprosesor untuk request yang diinginkan. Di bawah ini adalah contoh kerangka:

Request GET, PUT, dan PATCH memiliki fleksibilitas untuk dipanggil untuk satu atau beberapa record, maka masing-masing memiliki dua tipe. Pada kode di atas, perhatikan GET_SINGLE dan GET_MANY untuk request GET.

Preprosesor dan postprosesor menerima banyak parameter berbeda untuk setiap jenis request dan bekerja tanpa mengembalikan nilai apapun. Ini disisakan untuk kamu coba sendiri.

Kesimpulan

Pada seri tutorial bagian kali ini, kita melihat bagaimana cara membuat RESTful API menggunakan Flask hanya dengan menambahkan beberapa baris kode ke model berbasis SQLAlchemy.

Pada bagian berikutnya yang merupakan bagian terakhir, saya akan membahas bagaimana cara membuat RESTful API menggunakan ekstensi Flask lain yang populer, tapi kali ini, API akan terpisah dari perangkat modeling yang digunakan untuk database.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.