Penghalaan Tenang - Contoh API Flask

WBOY
Lepaskan: 2024-08-23 06:02:31
asal
623 orang telah melayarinya

Restful Routing - A Flask API Example

Penghalaan yang tenang ialah dorongan untuk menjadikan penghalaan konsisten walaupun semua aplikasi berbeza. REST ialah Pemindahan Negeri Perwakilan. Ia menggunakan HTTP dengan cara yang konsisten, boleh dibaca manusia, boleh dibaca mesin.

Piawaian ialah GET, POST, PATCH, PUT, dan DELETE.

Di bawah akan memberikan contoh beberapa laluan tenang dalam pangkalan data API kelalang untuk mendapatkan/memberi maklumat dari/ke hadapan dan melakukan tindakan yang diperlukan.

Contoh GET untuk Pengguna di bahagian pelayan menggunakan kelalang menggunakan kod di bawah.

Mula-mula anda juga perlu mengimport item ini. Import db akan digunakan kemudian untuk contoh DELETE.

from flask import request (*Used for POST and PATCH*)
from config import db, api, app 

from flask_restful import Resource
from models.user import User
Salin selepas log masuk

Fail konfigurasi anda hendaklah disediakan seperti di bawah agar import berfungsi.

 db = SQLAlchemy(app=app, metadata=metadata)
 api = Api(app=app)
Salin selepas log masuk

Kod GET dalam laluan Pengguna:

 class UsersResource(Resource):
     def get(self):
        users = [user.to_dict() for user in User.query.all()]
        return users, 200

 api.add_resource(UsersResource, "/api/users", endpoint="users")
Salin selepas log masuk

Untuk memecahkan kod ini.

Anda perlu mencipta kelas untuk Sumber Pengguna dan meletakkan Sumber sebagai hujah.

Seterusnya buat fungsi untuk mendapatkan. Fungsi ini akan menanyakan jadual Pengguna kemudian membuat senarai semua pengguna yang menukar mereka kepada kamus untuk pemindahan supaya mereka boleh dilihat pada halaman web sebagai JSON. Kemudian anda mengembalikan senarai serta kod status 200 bahawa permintaan itu berjaya.

Akhir sekali anda perlu mencipta sumber. Namakan sumber yang anda gunakan serta laluan dan titik akhir. /api ditambah di hadapan laluan supaya tapak web pengehosan boleh membezakan dari laluan hadapan dan belakang.

Untuk DELETE anda perlu mencipta sumber lain untuk pemadaman pengguna tunggal. Lihat kod di bawah:

 class UserResource(Resource):
     def delete(self, id):
         user= User.query.get(id)
         db.session.delete(user)
         db.session.commit()
         return {}, 204

 api.add_resource(UserResource, "/api/user/<int:id>", 
 endpoint="user")
Salin selepas log masuk

Untuk menerangkan dengan lebih lanjut apa yang berlaku dalam pemadaman yang berbeza daripada get adalah beberapa perkara. Mula-mula ia hanya memadamkan satu pengguna supaya anda perlu mencipta sumber baharu. Ia ditetapkan sama tetapi bukan jamak.

Kemudian anda mencipta fungsi padam. Ia memerlukan dua hujah kerana anda perlu memasukkan id yang dihantar dari bahagian hadapan untuk menentukan pengguna yang hendak dipadamkan. Kemudian anda akan menggunakan db session delete dan commit untuk mengemas kini pangkalan data. Selepas itu anda mengembalikan respons kosong kerana tiada apa-apa untuk dihantar semula dan status untuk pemadaman (204).

Akhir sekali anda perlu mencipta sumber. Kali ini menggunakan UserResource. Laluan akan berbeza untuk menjadi tunggal dan mempunyai id yang dihantar ke hujung hadapan dan titik akhir juga tunggal.

Penghalaan yang tenang menjadikannya begitu apabila bertukar antara aplikasi yang berbeza terdapat standard yang boleh diikuti oleh semua orang untuk penghalaan bahagian belakang dan mengetahui laluan yang diseragamkan. Selain itu, ia menjadikan laluan lebih bersih dan lebih mudah dibaca.

Atas ialah kandungan terperinci Penghalaan Tenang - Contoh API Flask. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan