مستندات API تعاملی و ایجاد رابط کاربری وب. از آنجایی که این فریم ورک برپایه OpenAPI میباشد، آپشن های متعددی وجود دارد که ۲ مورد بصورت پیش فرض گنجانده شده اند.
Swagger UI، با کاوش تعاملی، API خود را مستقیما از طریق مرورگر صدازده و تست کنید.
همه اینها برپایه type declaration های پایتون ۳.۶ استاندارد (به لطف Pydantic) میباشند. سینتکس جدیدی درکار نیست. تنها پایتون مدرن استاندارد.
اگر به یک یادآوری ۲ دقیقه ای در مورد نحوه استفاده از تایپ های پایتون دارید (حتی اگر از FastAPI استفاده نمیکنید) این آموزش کوتاه را بررسی کنید: Python Types.
شما پایتون استاندارد را با استفاده از تایپ ها مینویسید:
fromdatetimeimportdatefrompydanticimportBaseModel# Declare a variable as a str# and get editor support inside the functiondefmain(user_id:str):returnuser_id# A Pydantic modelclassUser(BaseModel):id:intname:strjoined:date
کلید ها و مقادیر دیکشنری second_user_data را مستقیما به عنوان ارگومان های key-value بفرست، که معادل است با : User(id=4, name="Mary", joined="2018-11-30")
تمام فریم ورک به گونه ای طراحی شده که استفاده از آن آسان و شهودی باشد، تمام تصمیمات حتی قبل از شروع توسعه بر روی چندین ویرایشگر آزمایش شده اند، تا از بهترین تجربه توسعه اطمینان حاصل شود.
شما پیشنهاد های تکمیل خودکاری را خواهید گرفت که حتی ممکن است قبلا آن را غیرممکن تصور میکردید. به عنوان مثال کلید price در داخل بدنه JSON (که میتوانست تودرتو نیز باشد) که از یک درخواست آمده است.
دیگر خبری از تایپ کلید اشتباهی، برگشتن به مستندات یا پایین بالا رفتن برای فهمیدن اینکه شما از username یا user_name استفاده کرده اید نیست.
FastAPI پیش فرض های معقولی برای همه چیز دارد، با قابلیت تنظیمات اختیاری در همه جا. تمام پارامترها را میتوانید برای انجام انچه نیاز دارید و برای تعریف API مورد نیاز خود به خوبی تنظیم کنید.
امنیت و احرازهویت بدون هیچگونه ارتباط و مصالحه ای با پایگاه های داده یا مدل های داده ایجاد شده اند.
تمام طرح های امنیتی در OpenAPI تعریف شده اند، از جمله:
.
OAuth2 (همچنین با JWT tokens). آموزش را در OAuth2 with JWT مشاهده کنید.
کلید های API:
Headers
Query parameters
Cookies، و غیره.
به علاوه تمام ویژگی های امنیتی از Statlette (شامل session cookies)
همه اینها به عنوان ابزارها و اجزای قابل استفاده ای ساخته شده اند که به راحتی با سیستم های شما، مخازن داده، پایگاه های داده رابطه ای و NoSQL و غیره ادغام میشوند.
یا به عبارت دیگر، هیچ نیازی به آنها نیست، کد موردنیاز خود را وارد و استفاده کنید.
هر یکپارچه سازی به گونه ای طراحی شده است که استفاده از آن بسیار ساده باشد (با وابستگی ها) که میتوانید با استفاده از همان ساختار و روشی که برای path operation های خود استفاده کرده اید تنها در ۲ خط کد "پلاگین" برنامه خودتان را ایجاد کنید.
FastAPI کاملا (و براساس) با Starlette سازگار است. بنابراین، هرکد اضافی Starlette که دارید، نیز کار خواهد کرد.
FastAPI در واقع یک زیرکلاس از Starlette است. بنابراین اگر از قبل Starlette را میشناسید یا با آن کار کرده اید، بیشتر قابلیت ها به همین روش کار خواهد کرد.
با FastAPI شما تمام ویژگی های Starlette را خواهید داشت (زیرا FastAPI یک نسخه و نمونه به تمام معنا از Starlette است):
FastAPI کاملا (و براساس) با Pydantic سازگار است. بنابراین هرکد Pydantic اضافی که داشته باشید، نیز کار خواهد کرد.
از جمله کتابخانه های خارجی نیز مبتنی بر Pydantic میتوان به ORM و ODM ها برای دیتابیس ها اشاره کرد.
این همچنین به این معناست که در خیلی از موارد میتوانید همان ابجکتی که از request میگیرید را مستقیما به دیتابیس بفرستید زیرا همه چیز به طور خودکار تأیید میشود.
همین امر برعکس نیز صدق میکند، در بسیاری از موارد شما میتوانید ابجکتی را که از پایگاه داده دریافت میکنید را مستقیماً به کاربر ارسال کنید.
با FastAPI شما تمام ویژگی های Pydantic را دراختیار دارید (زیرا FastAPI برای تمام بخش مدیریت دیتا بر اساس Pydantic عمل میکند):
خبری از گیج شدن نیست:
هیچ زبان خردی برای یادگیری تعریف طرحواره های جدید وجود ندارد.
اگر تایپ های پایتون را میشناسید، نحوه استفاده از Pydantic را نیز میدانید.
به خوبی با IDE/linter/مغز شما عمل میکند:
به این دلیل که ساختار داده Pydantic فقط نمونه هایی از کلاس هایی هستند که شما تعریف میکنید، تکمیل خودکار، mypy، linting و مشاهده شما باید به درستی با داده های معتبر شما کار کنند.
اعتبار سنجی ساختارهای پیچیده:
استفاده از مدل های سلسله مراتبی Pydantic, List و Dict کتابخانه typing پایتون و غیره.
و اعتبارسنج ها اجازه میدهند که طرحواره های داده پیچیده به طور واضح و آسان تعریف، بررسی و بر پایه JSON مستند شوند.
شما میتوانید ابجکت های عمیقا تودرتو JSON را که همگی تایید شده و annotated شده اند را داشته باشید.
قابل توسعه:
Pydantic اجازه میدهد تا data type های سفارشی تعریف شوند یا میتوانید اعتبارسنجی را با روش هایی به روی مدل ها با validator decorator گسترش دهید.