Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya mengendalikan berbilang titik akhir API dengan laluan berbeza tetapi parameter laluan yang sama dalam FastAPI?

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

Susan Sarandon
Susan Sarandonasal
2024-10-30 19:56:03595semak imbas

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>

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!

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