Web API ที่สามารถเรียกดูเว็บที่ยอดเยี่ยม
เอกสารฉบับเต็มสำหรับโครงการมีอยู่ที่ https://www.django-rest-framework.org/
กรอบ REST เป็น โครงการที่ได้รับทุนสนับสนุนจากความร่วมมือ หากคุณใช้เฟรมเวิร์ก REST ในเชิงพาณิชย์ เราขอแนะนำให้คุณลงทุนในการพัฒนาอย่างต่อเนื่องโดยสมัครใช้งานแผนแบบชำระเงิน
จุดมุ่งหมายเบื้องต้นคือการจัดให้มีตำแหน่งงานเต็มเวลาเพียงตำแหน่งเดียวบนกรอบงาน REST การลงทะเบียนทุกครั้งมีผลกระทบสำคัญต่อการทำให้สิ่งนี้เป็นไปได้
ขอขอบคุณผู้สนับสนุนที่ยอดเยี่ยมของเราทุกคน และโดยเฉพาะอย่างยิ่งผู้สนับสนุนระดับพรีเมียมของเรา Sentry, Stream, Spacinov, Retool, bit.io, PostHog, CryptAPI, FEZTO, Svix และ Zuplo
เฟรมเวิร์ก Django REST เป็นชุดเครื่องมือที่ทรงพลังและยืดหยุ่นสำหรับการสร้าง Web API
เหตุผลบางประการที่คุณอาจต้องการใช้กรอบงาน REST:
ด้านล่าง : ภาพหน้าจอจาก API ที่สามารถเรียกดูได้
เรา ขอแนะนำเป็นอย่างยิ่ง และสนับสนุนอย่างเป็นทางการเฉพาะแพทช์ล่าสุดของแต่ละซีรีส์ Python และ Django เท่านั้น
ติดตั้งโดยใช้ pip
...
pip install djangorestframework
เพิ่ม 'rest_framework'
ในการตั้งค่า INSTALLED_APPS
ของคุณ
INSTALLED_APPS = [
...
'rest_framework' ,
]
มาดูตัวอย่างสั้นๆ ของการใช้เฟรมเวิร์ก REST เพื่อสร้าง API ที่สนับสนุนแบบจำลองอย่างง่ายสำหรับการเข้าถึงผู้ใช้และกลุ่ม
ริเริ่มโครงการใหม่เช่นนี้...
pip install django
pip install djangorestframework
django-admin startproject example .
./manage.py migrate
./manage.py createsuperuser
ตอนนี้แก้ไขโมดูล example/urls.py
ในโครงการของคุณ:
from django . contrib . auth . models import User
from django . urls import include , path
from rest_framework import routers , serializers , viewsets
# Serializers define the API representation.
class UserSerializer ( serializers . HyperlinkedModelSerializer ):
class Meta :
model = User
fields = [ 'url' , 'username' , 'email' , 'is_staff' ]
# ViewSets define the view behavior.
class UserViewSet ( viewsets . ModelViewSet ):
queryset = User . objects . all ()
serializer_class = UserSerializer
# Routers provide a way of automatically determining the URL conf.
router = routers . DefaultRouter ()
router . register ( r'users' , UserViewSet )
# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
path ( '' , include ( router . urls )),
path ( 'api-auth/' , include ( 'rest_framework.urls' , namespace = 'rest_framework' )),
]
เรายังต้องการกำหนดค่าการตั้งค่าสองสามรายการสำหรับ API ของเราด้วย
เพิ่มสิ่งต่อไปนี้ลงในโมดูล settings.py
ของคุณ:
INSTALLED_APPS = [
... # Make sure to include the default installed apps here.
'rest_framework' ,
]
REST_FRAMEWORK = {
# Use Django's standard `django.contrib.auth` permissions,
# or allow read-only access for unauthenticated users.
'DEFAULT_PERMISSION_CLASSES' : [
'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly' ,
]
}
แค่นั้นแหละ เราทำเสร็จแล้ว!
./manage.py runserver
ตอนนี้คุณสามารถเปิด API ในเบราว์เซอร์ของคุณได้ที่ http://127.0.0.1:8000/
และดู API 'ผู้ใช้' ใหม่ของคุณ หากคุณใช้การควบคุม Login
ที่มุมขวาบน คุณจะสามารถเพิ่ม สร้าง และลบผู้ใช้ออกจากระบบได้
คุณยังสามารถโต้ตอบกับ API โดยใช้เครื่องมือบรรทัดคำสั่ง เช่น curl
ตัวอย่างเช่น หากต้องการแสดงรายการปลายทางของผู้ใช้ ให้ทำดังนี้
$ curl -H 'Accept: application/json; indent=4' -u admin:password http://127.0.0.1:8000/users/
[
{
"url": "http://127.0.0.1:8000/users/1/",
"username": "admin",
"email": "[email protected]",
"is_staff": true,
}
]
หรือเพื่อสร้างผู้ใช้ใหม่:
$ curl -X POST -d username=new -d [email protected] -d is_staff=false -H 'Accept: application/json; indent=4' -u admin:password http://127.0.0.1:8000/users/
{
"url": "http://127.0.0.1:8000/users/2/",
"username": "new",
"email": "[email protected]",
"is_staff": false,
}
เอกสารฉบับเต็มสำหรับโครงการมีอยู่ที่ https://www.django-rest-framework.org/
สำหรับคำถามและการสนับสนุน ให้ใช้กลุ่มสนทนาเฟรมเวิร์ก REST หรือ #restframework
บน libera.chat IRC
โปรดดูนโยบายความปลอดภัย