可以提供全局認證或者在具體的視圖中通過設置authentication_classes類屬性來設置來設置。
在繼承了APIView的類視圖中定義permission_classes = [permissions.IsAuthenticated]
AllowAny 允許所有用戶
IsAuthenticated 僅通過登錄認證的用戶
IsAdminUser 僅管理員用戶
IsAuthenticatedOrReadOnly 已經登陸認證的用戶可以對數據進行增刪改操作,沒有登陸認證的只能查看數據。
可以對接口訪問的頻次進行限制,以減輕服務器壓力,或者實現特定的業務。
對於列表數據可能需要根據字段進行過濾,我們可以通過添加django-fitlter擴展來增強支持。
對於列表數據,REST framework提供了OrderingFilter過濾器來幫助我們快速指明數據按照指定字段進行排序
REST framework提供了分頁的支持。我們可以在配置文件中設置全局的分頁方式。也可通過自定義Pagination類(繼承PageNumberPagination),來為視圖添加不同分頁行為。在視圖中通過pagination_class屬性來指明。
REST framework提供了默認常處理,我們也可以自定義的方式來編寫異常處理函數。 在主應用的配置文件settings.py中聲明自定義的異常處理。
DRF中默認的異常
ParseError 解析錯誤
AuthenticationFailed 認證失敗
NotAuthenticated 尚未認證
PermissionDenied 權限受限
NotFound 未找到路由
MethodNotAllowed 請求方式不支持
NotAcceptable 要獲取的數據格式不支持
Throttled 超過限流次數
ValidationError 校驗失敗
DRF 需要安裝 coreapi庫的支持。
pip install coreapi
1) 設置接口文檔訪問路徑
REST_FRAMEWORK = {
# 。。。 其他選項 # 接口文檔
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema', }
2)路由配置
from rest_framework.documentation import include_docs_urls
urlpatterns = [
...
path('docs/', include_docs_urls(title='站點頁面標題'))
]
3) 訪問接口文檔網頁
浏覽器訪問 127.0.0.1:8000/docs/,即可看到自動生成的接口文檔。