Hari ini, kami teruja untuk mengeluarkan versi baharu perpustakaan Python asas kami, serta keluaran perpustakaan khusus rangka kerja kami untuk FastAPI, Flask dan Rangka Kerja Django Rest.
Mari beralih kepada beberapa perubahan yang lebih besar!
Jika anda pernah menggunakan perpustakaan Python kami sebelum ini, pembayang jenis meninggalkan banyak perkara yang perlu diingini. Dalam keluaran terbaharu kami, kami kini mempunyai petunjuk jenis untuk semua permintaan serta jenis data untuk semua respons.
NOTA: Ini akan terputus secara khusus jika anda sebelum ini membongkar (menggunakan operator **) pada respons. Respons sebelum ini adalah dict dan kini merupakan jenis data yang jelas.
Kami telah melaksanakan fungsi yang biasa digunakan seperti carian kunci (response["user_id"] akan tetap berfungsi, tetapi response.user_id kini diutamakan). Kami biasanya cuba mengelak daripada melanggar perubahan (ini kali kedua kami dalam 3 tahun), tetapi ini terasa seperti masalah yang agak sempit.
Untuk semakan kebenaran yang lebih mudah, anda kini boleh memanggil fungsi terus pada objek Pengguna seperti:
Ini membolehkan anda melepasi objek Pengguna dan bukannya perlu merujuk kembali kepada objek Auth, dan ia juga membolehkan ejekan/ujian yang lebih mudah.
Ini tidak khusus untuk perpustakaan Python kami, tetapi kami telah mengeluarkan banyak API baharu seperti:
Lihat senarai penuh dalam dokumen rujukan kami di sini.
Di PropelAuth, kami bernasib baik kerana mempunyai tempat duduk barisan hadapan untuk melihat banyak syarikat B2B SaaS berkembang. Pembekal pengesahan adalah paling penting pada saat-saat kritikal dalam sejarah syarikat (pelancaran awal, menerima pelanggan pertama anda, menutup pelanggan perusahaan pertama anda, dsb.). Perkara yang paling penting yang boleh kami lakukan semasa anda berkembang adalah untuk keluar dari jalan.
Itulah sebabnya kami sangat gembira dengan laluan FastAPI ini:
@app.post("/api/expensive-action") async def do_expensive_action(user: User = Depends(auth.require_user)): org = user.get_active_org() if org == None or \ not org.user_has_permission("can_do_expensive_action"): raise HTTPException(status_code=403, detail="Forbidden") return do_expensive_action_inner(user, org)
Pada pandangan pertama, ini kelihatan seperti laluan yang agak mudah, tetapi ia mempunyai beberapa bahagian penting:
@app.post("/api/expensive-action") async def do_expensive_action(user: User = Depends(auth.require_user)): org = user.get_active_org() if org == None or \ not org.user_has_permission("can_do_expensive_action"): raise HTTPException(status_code=403, detail="Forbidden") return do_expensive_action_inner(user, org)
Dan bahagian yang terbaik? Coretan kod yang sama di atas akan terus berfungsi. Walaupun keperluan pelanggan kami semakin rumit, kod anda tidak akan.
Kami sentiasa berusaha untuk menambah baik perpustakaan dan perkhidmatan kami berdasarkan maklum balas anda. Jika anda mempunyai sebarang soalan tentang keluaran ini atau cadangan untuk penambahbaikan pada masa hadapan, sila jangan teragak-agak untuk menghubungi kami.
Atas ialah kandungan terperinci PropelAuth Python velease. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!