การค้นพบช่วยให้คุณสร้าง API จากฐานข้อมูลที่มีอยู่ด้วยความพยายามน้อยที่สุด โครงการนี้มีพื้นฐานมาจาก Bookrest ของ Shabda Raaj นอกจากนี้คุณยังสามารถใช้ประโยชน์จากความสามารถของกรอบ Django REST เพื่อใช้การกรองการปนเปื้อนและการสร้างเอกสาร ตัวอย่างสามารถพบได้ในไดเรกทอรี examples
ข้อมูลไม่สามารถเข้าถึงได้เสมอในแอปพลิเคชันดั้งเดิม คุณอาจอยู่ในสถานการณ์ที่คุณต้องการเข้าถึงข้อมูลสำหรับการรายงานหรือการสร้างต้นแบบเครื่องมือใหม่ การเพิ่มฟังก์ชั่นใหม่ให้กับซอฟต์แวร์ดั้งเดิมอาจเป็นค่าใช้จ่ายที่ต้องห้ามและโซลูชันนี้มีวัตถุประสงค์เพื่อแก้ไขปัญหานี้
สำหรับการสร้างสคีมาที่ประสบความสำเร็จคุณต้องมีคีย์หลักในตาราง มิฉะนั้นจะถูกละเว้นอย่างเงียบ ๆ
pip install djangorestframework-discovery ใน settings.py ของคุณ py:
INSTALLED_APPS = [
# ...
"rest_framework" ,
"rest_framework_discovery" ,
] เพิ่มตัวแปรลงใน settings.py ของคุณชื่อ DISCOVERY_ALIAS_NAME คุณสามารถใช้ค่าใด ๆ แต่แนะนำให้ discovery คุณจะใช้สิ่งนั้นเพื่อกำหนดฐานข้อมูลที่คุณต้องการใช้สำหรับการสร้างมุมมอง
DISCOVERY_ALIAS_NAME = 'discovery'
DATABASES = {
'default' : {
'ENGINE' : 'django.db.backends.sqlite3' ,
'NAME' : os . path . join ( BASE_DIR , 'db.sqlite3' ),
},
'discovery' : {
'NAME' : 'YOUR_DB_NAME' ,
'ENGINE' : 'django.db.backends.postgresql' ,
'USER' : 'YOUR_DB_USER' ,
'PASSWORD' : 'YOUR_DB_PASSWORD' ,
'HOST' : 'YOUR_DB_HOST' ,
'PORT' : 'YOUR_DB_PORT' ,
},
} เพิ่มรูปแบบที่สร้างขึ้นในส่วนที่เหลือของแอปพลิเคชันของคุณโดยการแก้ไข urls.py
urlpatterns = [
# ...
url ( r'^api/discovery/' , include ( 'rest_framework_discovery.urls' )),
] คุณจะต้องรวม DEFAULT_SCHEMA_CLASS อย่างชัดเจนใน settings.py เพื่อให้สิ่งนี้ทำงานได้ ดูรายละเอียดเพิ่มเติม ..
REST_FRAMEWORK = {
...
'DEFAULT_SCHEMA_CLASS' : 'rest_framework.schemas.coreapi.AutoSchema'
} คุณสามารถเรียกใช้ผ่านชุดทดสอบได้โดยเรียกใช้ runtests.py หรือ tox
คุณสามารถกำหนดค่าต่อไปนี้ใน settings.py :
DISCOVERY_ALIAS_NAME : (จำเป็น) ชื่อนามแฝงฐานข้อมูลที่จะใช้กับการค้นพบDISCOVERY_READ_ONLY : (ไม่บังคับ) True หรือ False ไม่ว่าจะเป็นชุดมุมมองเท่านั้นหรือไม่DISCOVERY_INCLUDE : (ไม่บังคับ) รายการตารางที่คุณต้องการรวม เท่านั้นDISCOVERY_EXCLUDE : (ไม่บังคับ) รายการตารางที่คุณต้องการเพิกเฉย