Python Academy · Pelajaran

Membina Titik Akhir REST

Pulangkan respons JSON

Pelajaran 4 daripada 413 langkah

Membina Titik Akhir REST ialah pelajaran Python Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Python Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Python Academy merangkumi sejumlah 4 pelajaran.

Apakah API REST

API REST mendedahkan sumber melalui HTTP menggunakan kata kerja piawai. Daripada memulangkan halaman HTML, API ini 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() menukar kamus atau senarai Python menjadi respons JSON dengan jenis kandungan yang betul.

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

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

Kamus Ditukar Automatik

Flask moden juga menukar kamus yang dikembalikan kepada JSON secara automatik, jadi anda biasanya 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 Senarai

Untuk mengembalikan koleksi, hantarkan senarai kepada jsonify(). Setiap item biasanya ialah kamus yang mewakili satu sumber.

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

Gunakan bahagian URL dinamik untuk mendapatkan satu item berdasarkan id. Kembalikan 404 jika item itu tidak wujud.

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')

Mencipta dengan POST

Permintaan POST mencipta satu sumber. Baca isi JSON, bina item baharu dan kembalikannya dengan status 201 Dicipta.

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')

Mengemas Kini dengan PUT

PUT menggantikan atau mengemas kini sumber sedia ada yang dikenal pasti melalui idnya.

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')

Memadam dengan DELETE

DELETE membuang satu sumber. Mengembalikan status 204 Tiada Kandungan ialah amalan biasa apabila operasi berjaya.

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')

Kod Status Penting

REST bergantung pada kod status HTTP: 200 OK, 201 Dicipta, 204 Tiada Kandungan, 400 Permintaan Tidak Sah, 404 Tidak Ditemui.

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

Mengesahkan Isi Kandungan

Semak bahawa medan yang diperlukan wujud sebelum mencipta sumber. Kembalikan 400 bersama mesej ralat apabila isi kandungan tidak sah.

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 yang boleh dijangka, biasanya dengan membungkus data dan ralat menggunakan cara yang sama setiap kali supaya klien boleh bergantung padanya.

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

Ujian Ringkas

Uji pengetahuan anda tentang REST.

Rumusan

Anda telah membina titik akhir REST berasaskan JSON.

  • jsonify() (atau kamus yang dikembalikan) menghasilkan respons JSON
  • Petakan kata kerja HTTP: GET membaca, POST mencipta, PUT mengemas kini, DELETE membuang
  • Kembalikan kod status yang bermakna seperti 201, 204, 400 dan 404
  • Sahkan isi kandungan request dan pastikan respons konsisten
Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
76
Pelajaran
320

Soalan Lazim

Adakah pelajaran “Membina Titik Akhir REST” percuma?

Ya — teks penuh “Membina Titik Akhir REST” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Python Academy, tingkat taraf kepada CoddyKit PRO. Kursus Python Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Membina Titik Akhir REST”?

Pulangkan respons JSON Anda berlatih Python Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Python Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Python Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Membina Titik Akhir REST” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Laluan dan Paparan
  2. Templat dengan Jinja2
  3. Borang dan Data Permintaan
  4. Membina Titik Akhir REST
← Kembali ke Python Academy