Sudah agak lama saya tidak berpeluang membina sesuatu yang mudah, menarik dan moden. Menjelang akhir tahun 2024, saya terjumpa FastAPI dan teruja, sementara saya telah membina API dalaman di tempat kerja sebelum ini, saya belum lagi mencipta apa-apa yang dihadapi oleh orang ramai.
Helo FastAPI!
FastAPI ialah rangka kerja moden yang berkuasa untuk membina API dengan Python dan ia kelihatan sesuai untuk apa yang saya mahu bina, API untuk maklumat asas pemain bola sepak. Saya pada mulanya menggelarkannya sebagai "Jugador FC" sebelum memilih "Player FC API".
Sebelum anda bermula, pastikan anda mempunyai keperluan berikut:
AWS CDK
Pelabuhan
Python 3.12.7
Buat direktori pada mesin anda. Namakannya player_fc_fastapi_app, dalam direktori ini buat subdirektori berikut:
apl
Mengandungi semua kod FastAPI
dynamo_db_local
Mengandungi skrip python untuk mencipta versi tempatan Jadual Amazon DynamoDB
iac
Mengandungi fail tindanan anda untuk mencipta sumber dalam AWS
Saya telah memudahkannya dengan menyediakan arahan yang boleh anda jalankan untuk menjimatkan masa di bawah:
Struktur direktori projek kini sepatutnya kelihatan seperti di bawah:
Menyediakan persekitaran Python
Menyediakan Amazon DynamoDB Local
untuk dipasang dan dijalankan.
dynamo_db_local dan mencipta fail create_ddb_table.py, isikan fail dengan kod di bawah :
Dengan kod ini, anda boleh mencipta jadual dalam contoh DynamoDB setempat. Jalankan coretan kod. Pembangunan FastAPI
Sekarang kita mempunyai instance tempatan
DynamoDBdan buat dua fail, main.py dan keperluan. txt.
Isi keperluan.txt dengan yang di bawah:
Buat subdirektori di bawah :
Mari kita buat beberapa model menggunakan Pydantic, kami akan menggunakan model Player dan UpdatePlayer untuk menentukan struktur data maklumat pemain yang boleh kami tambah atau ubah suai.
Dalam subdirektori model, buat fail __init__.py kosong dan fail bernama players.py dan isikan kod di bawah:
Dalam subdirektori penghala
, buat fail __init__.py kosong dan fail bernama players.py dan isikan kod di bawah:Mencipta fail __init__.py kosong menukar folder menjadi pakej Python.
Buat fail bernama main.py dalam subdirektori
appPandu Uji Masa untuk pandu uji pantas, pastikan anda berada dalam direktori app
dan jalankan arahan di bawah untuk memulakan
Sekarang apl kami sedang aktif dan berjalan, navigasi ke
http://127.0.0.1:8000/docs/Anda akan melihat dokumentasi API interaktif automatik dengan 6 titik akhir tersedia:
Mari cuba tambah pemain. Pilih titik akhir
POST /playersdan gunakan muatan di bawah untuk menambah pemain terbaik dunia, "Vinícius Júnior":
Berikut ialah rupa setiap operasi API dalam tindakan.
Menambah Pemain Baharu:
Mengambil semula Semua Pemain:
Mengemaskini Maklumat Pemain:
Mendapatkan Butiran Pemain Tunggal:
Mengalih keluar Pemain:
Penggunaan menggunakan AWS CDK v2
Sekarang kami selesa menjalankan dan menguji apl kami secara tempatan, tiba masanya untuk menggunakan apl kami pada AWS. Kami akan menggunakan AWS CDK v2.Ubah suai fail requirements.txt yang terdapat dalam subdirektori, tambah baris di bawah:
Mari kita tentukan Jadual DynamoDB, fungsi Lambda dan url fungsi Lambda. Dalam direktori iac semasa, terdapat subdirektori lain yang anda perlukan untuk menavigasi ke arah (iac
). Buka fail iac_stack.py dan gantikan kandungan tindanan CDK dengan kod di bawah:Kami mempunyai satu langkah terakhir sebelum kami memulakan penggunaan, tetapkan bendera untuk local_development: bool kepada False dalam fail players.py dalam direktori
app/routerAktifkan persekitaran maya dalam direktori
Gunakan apl dengan arahan penggunaan cdk.
Setelah penempatan selesai, anda akan melihat URL fungsi dalam output terminal, ini ialah titik akhir API anda pada AWS.
Teroka item jadual
Anda sepatutnya melihat data pemain anda dalam awan:
?
Penting: Jangan lupa untuk membersihkan sumber! Apabila tidak diperlukan lagi, anda boleh menjalankan perintah cdk destroy untuk memadam semua sumber AWS yang telah dibuat. <script></script>Itu melengkapkan perjalanan kami daripada pembangunan FastAPI tempatan kepada penggunaan tanpa pelayan pada AWS.<script></script> <script></script> <script></script>Atas ialah kandungan terperinci Pembangunan FastAPI Tanpa Pelayan: Membina API Pemain FC pada AWS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!