Study
Flask

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.

Editor Latihan

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.