0Pricing
Python Academy · Pelajaran

Membangun Endpoint REST

Kembalikan respons JSON

Membangun Endpoint REST adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.

Apa Itu REST API?

REST API menyediakan sumber daya melalui HTTP menggunakan verba standar. Alih-alih halaman HTML, REST API mengembalikan data, biasanya dalam bentuk JSON, untuk digunakan oleh program lain.

from flask import Flask, jsonify
app = Flask(__name__)
# REST endpoints return data, not pages
print('REST APIs speak JSON over HTTP')

Mengembalikan JSON

jsonify() mengubah dict atau daftar Python menjadi respons JSON dengan tipe konten yang tepat.

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

@app.route('/api/status')
def status():
    return jsonify({'status': 'ok'})
print('jsonify builds a JSON response')

Dict Dikonversi Otomatis

Flask modern juga secara otomatis mengubah dict yang dikembalikan menjadi JSON, sehingga Anda sering kali tidak perlu menggunakan jsonify().

from flask import Flask
app = Flask(__name__)

@app.route('/api/ping')
def ping():
    return {'message': 'pong'}
print('Returning a dict yields JSON')

Mengembalikan Daftar

Untuk mengembalikan kumpulan data, teruskan daftar ke jsonify(). Setiap item biasanya berupa dict yang mewakili satu sumber daya.

from flask import Flask, jsonify
app = Flask(__name__)
books = [{'id': 1, 'title': 'A'}, {'id': 2, 'title': 'B'}]

@app.route('/api/books')
def list_books():
    return jsonify(books)
print('Return a list of resources')

GET Satu Sumber Daya

Gunakan bagian URL dinamis untuk mengambil satu item berdasarkan id. Kembalikan 404 jika item tersebut tidak ada.

from flask import Flask, jsonify
app = Flask(__name__)
books = {1: {'id': 1, 'title': 'A'}}

@app.route('/api/books/<int:bid>')
def get_book(bid):
    book = books.get(bid)
    if book is None:
        return jsonify({'error': 'not found'}), 404
    return jsonify(book)
print('GET /api/books/1')

Membuat dengan POST

Permintaan POST membuat sebuah sumber daya. Baca isi JSON, buat item baru, lalu kembalikan item tersebut dengan status 201 Created.

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

@app.route('/api/books', methods=['POST'])
def create_book():
    data = request.get_json()
    book = {'id': len(books) + 1, 'title': data['title']}
    books.append(book)
    return jsonify(book), 201
print('POST creates and returns 201')

Memperbarui dengan PUT

PUT menggantikan atau memperbarui sumber daya yang sudah ada berdasarkan id-nya.

from flask import Flask, request, jsonify
app = Flask(__name__)
books = {1: {'id': 1, 'title': 'A'}}

@app.route('/api/books/<int:bid>', methods=['PUT'])
def update_book(bid):
    if bid not in books:
        return jsonify({'error': 'not found'}), 404
    books[bid]['title'] = request.get_json()['title']
    return jsonify(books[bid])
print('PUT updates a resource')

Menghapus dengan DELETE

DELETE menghapus sebuah sumber daya. Mengembalikan status 204 No Content merupakan hal yang umum jika operasi berhasil.

from flask import Flask, jsonify
app = Flask(__name__)
books = {1: {'id': 1, 'title': 'A'}}

@app.route('/api/books/<int:bid>', methods=['DELETE'])
def delete_book(bid):
    if bid in books:
        del books[bid]
        return '', 204
    return jsonify({'error': 'not found'}), 404
print('DELETE removes a resource')

Kode Status Itu Penting

REST mengandalkan kode status HTTP: 200 OK, 201 Created, 204 No Content, 400 Bad Request, 404 Not Found.

# 200 success
# 201 created
# 204 no content
# 400 bad request
# 404 not found
print('Use the right status code')

Memvalidasi Isi Permintaan

Pastikan kolom yang wajib diisi tersedia sebelum membuat data. Kembalikan 400 dengan pesan kesalahan jika isi permintaan tidak valid.

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

@app.route('/api/books', methods=['POST'])
def create_book():
    data = request.get_json(silent=True) or {}
    if 'title' not in data:
        return jsonify({'error': 'title required'}), 400
    return jsonify(data), 201
print('Validate JSON before using it')

Respons yang Konsisten

API yang baik mengembalikan bentuk data yang dapat diprediksi, sering kali dengan membungkus data dan kesalahan menggunakan cara yang sama setiap kali agar klien dapat mengandalkannya.

from flask import jsonify
# Success: {'data': {...}}
# Error:   {'error': 'message'}
# Keep the shape consistent across endpoints
print('Predictable shapes help clients')

Pemeriksaan Singkat

Uji pengetahuan Anda tentang REST.

Rangkuman

Anda telah membangun endpoint REST JSON.

  • jsonify() (atau dict yang dikembalikan) menghasilkan respons JSON
  • Petakan verba HTTP: GET membaca, POST membuat, PUT memperbarui, DELETE menghapus
  • Kembalikan kode status yang bermakna seperti 201, 204, 400, 404
  • Validasi isi permintaan dan pertahankan konsistensi respons

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Membangun Endpoint REST” gratis?

Ya — teks lengkap “Membangun Endpoint REST” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Membangun Endpoint REST”?

Kembalikan respons JSON Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Python Academy?

Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Membangun Endpoint REST” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Rute dan View
  2. Template dengan Jinja2
  3. Formulir dan Data Permintaan
  4. Membangun Endpoint REST
← Kembali ke Python Academy