REST API dengan jsonify
Penjelasan
Untuk membangun REST API, Flask menyediakan jsonify() yang mengubah dictionary atau list Python menjadi response JSON dengan header Content-Type yang benar (application/json), sekaligus menangani encoding karakter khusus dengan aman. Untuk membaca body JSON dari request masuk, pakai request.get_json(). Kode status HTTP bisa ditentukan dengan mengembalikan tuple (data, status_code), misalnya (jsonify(data), 201) untuk resource yang baru dibuat, atau (jsonify({'error': 'tidak ditemukan'}), 404) untuk error.
Contoh Konsep
from flask import Flask, jsonify, request
app = Flask(__name__)
produk_list = [{'id': 1, 'nama': 'Laptop'}]
@app.route('/api/produk', methods=['GET'])
def api_daftar_produk():
return jsonify(produk_list)
@app.route('/api/produk', methods=['POST'])
def api_tambah_produk():
data = request.get_json()
produk_baru = {'id': len(produk_list) + 1, 'nama': data['nama']}
produk_list.append(produk_baru)
return jsonify(produk_baru), 201
@app.route('/api/produk/<int:id>')
def api_detail_produk(id):
produk = next((p for p in produk_list if p['id'] == id), None)
if produk is None:
return jsonify({'error': 'Produk tidak ditemukan'}), 404
return jsonify(produk)
Praktikum
Lengkapi endpoint DELETE agar menghapus produk berdasar id dan mengembalikan JSON konfirmasi dengan status 200.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Gunakan Postman atau curl untuk menguji endpoint API secara langsung, bukan hanya lewat browser — browser default mengirim GET, sedangkan kamu perlu menguji POST/PUT/DELETE dengan body JSON.