Rumah >pembangunan bahagian belakang >Tutorial Python >Reka bentuk API RESTful berdasarkan Python

Reka bentuk API RESTful berdasarkan Python

PHPz
PHPzasal
2023-06-17 10:06:102848semak imbas

Dengan populariti Internet, semakin banyak aplikasi mula menggunakan antara muka API RESTful untuk interaksi data. API RESTful, "Pemindahan Negeri Perwakilan", ialah corak reka bentuk antara muka aplikasi rangkaian berdasarkan protokol HTTP. Ia adalah satu cara untuk berkomunikasi melalui protokol HTTP menggunakan format data seperti XML dan JSON di Internet, supaya aplikasi boleh berinteraksi antara satu sama lain dan bertukar data.

Berbanding dengan corak reka bentuk antara muka yang lain, RESTful API adalah ringkas, fleksibel, mudah digunakan dan universal serta digemari oleh ramai pembangun. Artikel ini akan memperkenalkan cara mereka bentuk RESTful API menggunakan bahasa Python.

1. Prinsip reka bentuk RESTful API
Apabila mereka bentuk RESTful API, anda perlu mengikut prinsip berikut:

  1. Mengenal pasti sumber secara unik: Setiap sumber perlu mempunyai URI yang unik (Pengecam Sumber Seragam) untuk pengenalan.
  2. Gunakan protokol HTTP untuk komunikasi: API RESTful terutamanya berdasarkan protokol HTTP untuk interaksi data, jadi ia perlu mematuhi peraturan protokol HTTP.
  3. Gunakan kaedah HTTP standard: Dalam RESTful API, kaedah HTTP utama yang digunakan ialah GET, POST, PUT, DELETE, dsb.
  4. Gunakan kod status HTTP untuk pengecaman: API RESTful menggunakan kod status HTTP untuk mengembalikan hasil permintaan, seperti 200 menunjukkan kejayaan, 404 menunjukkan sumber tidak ditemui, dsb.

2. Gunakan Python untuk melaksanakan reka bentuk RESTful API
Python ialah bahasa pengaturcaraan yang sangat popular, ia mudah dibaca, ringkas dan jelas untuk membina API RESTful. Di bawah, kami akan menggunakan perpustakaan Python Flask dan Flask-RESTful untuk melaksanakan API RESTful yang mudah.

  1. Install Flask and Flask-RESTful library
    Flask ialah rangka kerja web berdasarkan bahasa Python, yang boleh digunakan untuk membina aplikasi web. Flask-RESTful ialah rangka kerja API RESTful yang dibangunkan berdasarkan Flask, yang boleh digunakan untuk membina aplikasi API RESTful. Sebelum anda mula membina API RESTful, anda perlu memasang Flask dan perpustakaan Flask-RESTful.

    $ pip install flask
    $ pip install flask-restful
  2. Menulis kod API RESTful
    Selepas memasang perpustakaan Flask dan Flask-RESTful, kami boleh mula menulis kod API RESTful. Di bawah, kami mengambil sistem pengurusan pelajar yang mudah sebagai contoh untuk memperkenalkan cara menggunakan Python untuk menulis API RESTful.

Pertama, kita perlu mencipta aplikasi Flask dan memperkenalkan perpustakaan Flask-RESTful ke dalam aplikasi:

from flask import Flask
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)

Kemudian, kita perlu mentakrifkan kelas pelajar dan mentakrifkan Sumber yang berkaitan :

class Student(Resource):
    def get(self, id):
        # 获取指定id的学生信息
        pass

    def post(self):
        # 新增一个学生
        pass

    def put(self, id):
        # 更新指定id的学生信息
        pass

    def delete(self, id):
        # 删除指定id的学生信息
        pass

api.add_resource(Student, '/students', '/students/<int:id>')

Dalam kod di atas, kami mentakrifkan kelas Pelajar, yang mewarisi kelas Sumber dalam perpustakaan Flask-RESTful. Antaranya, kaedah dapatkan, siarkan, letak dan padam sepadan dengan kaedah GET, POST, PUT dan DELETE dalam API RESTful. Kemudian, kami menggunakan kaedah add_resource untuk mengikat kelas Pelajar dan URI sumber yang sepadan.

Akhir sekali, kita perlu menjalankan aplikasi Flask:

if __name__ == '__main__':
    app.run(debug=True)
  1. Menguji API RESTful
    Selepas menulis kod API RESTful, kita perlu mengujinya. Anda boleh menggunakan alatan seperti Postman untuk ujian, atau anda boleh menulis skrip Python anda sendiri untuk ujian. Di bawah, kami mengambil skrip Python sebagai contoh untuk menguji API RESTful:

    import requests
    import json
    
    # 获取指定id的学生信息
    response = requests.get("http://localhost:5000/students/1")
    print(response.content)
    
    # 新增一个学生
    data = {
        "name": "Tom",
        "age": 20,
        "gender": "Male"
    }
    headers = {
        "content-type": "application/json"
    }
    response = requests.post("http://localhost:5000/students", data=json.dumps(data), headers=headers)
    print(response.content)
    
    # 更新指定id的学生信息
    data = {
        "name": "Tom",
        "age": 21,
        "gender": "Male"
    }
    headers = {
        "content-type": "application/json"
    }
    response = requests.put("http://localhost:5000/students/1", data=json.dumps(data), headers=headers)
    print(response.content)
    
    # 删除指定id的学生信息
    response = requests.delete("http://localhost:5000/students/1")
    print(response.content)

Dalam kod di atas, kami menggunakan perpustakaan permintaan untuk menghantar permintaan GET, POST, PUT dan DELETE , dan kemudian cetak Hasilnya dikembalikan. Antaranya, parameter data perlu menukar kamus Python kepada rentetan JSON, dan parameter pengepala perlu menentukan jenis kandungan sebagai aplikasi/json.

3. Ringkasan
Artikel ini memperkenalkan cara menggunakan bahasa Python untuk mereka bentuk RESTful API, yang menggunakan pustaka Flask-RESTful Python. Melalui mengkaji artikel ini, pembaca harus menguasai cara membina API RESTful dalam bahasa Python, dan juga memahami prinsip reka bentuk dan kaedah HTTP biasa API RESTful. Dalam pembangunan aplikasi web masa hadapan, saya berharap pembaca boleh menggunakan teknologi API RESTful secara fleksibel untuk mencapai aplikasi yang lebih cekap, fleksibel dan mudah digunakan.

Atas ialah kandungan terperinci Reka bentuk API RESTful berdasarkan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn