Bagaimanakah saya mengendalikan berbilang titik akhir API dengan laluan berbeza tetapi parameter laluan yang sama dalam FastAPI?

Susan Sarandon
Lepaskan: 2024-10-30 19:56:03
asal
522 orang telah melayarinya

How do I handle multiple API endpoints with different paths but the same path parameter in FastAPI?

Berbilang Titik Akhir API dengan Laluan Berbeza tetapi Parameter Laluan Sama dalam FastAPI

Dalam FastAPI, mentakrifkan titik akhir API dengan laluan berbeza tetapi parameter laluan yang sama boleh dicapai dengan mengisytiharkan titik akhir mengikut urutan. Walau bagaimanapun, isu biasa timbul apabila titik akhir pertama yang diisytiharkan dalam penghala dipanggil dan bukannya titik akhir yang dimaksudkan apabila titik akhir lain dengan parameter laluan kongsi dicetuskan.

Isu ini berlaku kerana FastAPI menilai titik akhir mengikut susunan ia muncul. dalam penghala. Akibatnya, jika titik akhir dengan parameter laluan kongsi (/project/{project_id}/...) ditakrifkan dahulu, ia akan dinilai terlebih dahulu dan mengendalikan semua permintaan ke laluan itu, tanpa mengira parameter laluan tambahan.

Penyelesaian:

Untuk menyelesaikan isu ini, pastikan titik akhir dengan parameter laluan berbeza diisytiharkan sebelum titik akhir dengan parameter laluan kongsi. Ini memastikan bahawa titik akhir yang betul dicetuskan berdasarkan laluan khusus yang disediakan.

Sebagai contoh, pertimbangkan penghala yang disemak berikut:

<code class="python"># GET API Endpoint 2
@router.get("/project/details/{project_id}")
# ...

# GET API Endpoint 3
@router.get("/project/metadata/{project_id}")
# ...

# GET API Endpoint 1
@router.get("/project/{project_id}/{employee_id}")
# ...</code>
Salin selepas log masuk

Dalam penghala yang dikemas kini ini, titik akhir dengan laluan unik parameter (/project/details/{project_id} dan /project/metadata/{project_id}) diisytiharkan dahulu. Akibatnya, apabila titik akhir ini dicetuskan, kaedah pengawal yang sepadan akan dilaksanakan dengan betul dan isu pelaksanaan pengawal yang tidak sepadan diselesaikan.

Atas ialah kandungan terperinci Bagaimanakah saya mengendalikan berbilang titik akhir API dengan laluan berbeza tetapi parameter laluan yang sama dalam FastAPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!