Bu soruya verilen kabul edilen cevap soruyu söylendiği gibi cevaplarken, eldeki asıl sorunu çözmediğini düşünüyorum.
Bu cevabın eksiksiz olması için, göz atılabilir HTML api'nin devre dışı bırakılması, aşağıdaki gibi oluşturucu sınıflarından kaldırılarak yapılır:
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
)
}
Ancak, sorunun ima ettiği asıl sorun, insanların kimlik doğrulaması olmadan API'ye gönderi yapabilmeleridir. Formu kaldırmak onu daha az belirgin hale getirse de, bu yanıt API uç noktalarını korumaz.
En azından birisi bu soruyu bulur ve API'yi kimliği doğrulanmamış veya yetkisiz POST gönderimlerine karşı korumaya çalışır; API İzinlerini değiştirmek isteyenler
Aşağıdakiler, kullanıcının kimliği doğrulanmadığı sürece tüm uç noktaları yalnızca okunacak şekilde ayarlayacaktır.
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticatedOrReadOnly',
)
}
Kullanıcı oturum açmadıkça API'yi tamamen gizlemek isterseniz, kullanabilirsiniz IsAuthenticated
.
Bilginize: Bu, izinlere yanıt verirken formu HTML göz atılabilir API'den de kaldıracaktır. Kimliği doğrulanmış bir kullanıcı giriş yaptığında, form tekrar kullanılabilir olacaktır.
Bonus Turu :
Yalnızca geliştiricideki göz atılabilir HTML API'sini etkinleştirin:
DEFAULT_RENDERER_CLASSES = (
'rest_framework.renderers.JSONRenderer',
)
if DEBUG:
DEFAULT_RENDERER_CLASSES = DEFAULT_RENDERER_CLASSES + (
'rest_framework.renderers.BrowsableAPIRenderer',
)
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticatedOrReadOnly',
),
'DEFAULT_RENDERER_CLASSES': DEFAULT_RENDERER_CLASSES
}