0Pricing
Django Academy · Pelajaran

Izin dan Pembatasan Laju

Atur siapa yang dapat memanggil API Anda dan seberapa sering

Izin dan Pembatasan Laju adalah pelajaran Django Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Django Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Django Academy mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Who Can Call Your API?

An open API lets anyone read or change your data. Permissions decide who is allowed to do what on each endpoint.

The permission_classes Attribute

You attach access rules with permission_classes on a view or ViewSet. DRF checks them before any action runs.

from rest_framework.permissions import IsAuthenticated

class BookViewSet(viewsets.ModelViewSet):
    permission_classes = [IsAuthenticated]

Built-in Permission Classes

DRF ships ready rules: AllowAny opens a view, IsAuthenticated requires a logged-in user, and IsAdminUser limits it to staff.

Read for All, Write for Members

IsAuthenticatedOrReadOnly is a popular middle ground: anyone can GET, but only logged-in users can POST, PUT, or DELETE.

Setting a Default Globally

Set a project-wide rule in settings.py so every view starts secure unless it opts out.

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAuthenticated',
    ],
}

Writing a Custom Permission

Need your own rule? Subclass BasePermission and return True or False from has_permission for the request.

from rest_framework.permissions import BasePermission

class IsOwner(BasePermission):
    def has_object_permission(self, request, view, obj):
        return obj.owner == request.user

Object-Level Permissions

Use has_object_permission to check a single record, like letting users edit only the posts they own. 🔒

Now, Throttling

Permissions answer who. Throttling answers how often, capping the number of requests a client may send in a time window.

Anon vs User Throttles

DRF offers AnonRateThrottle for unauthenticated visitors and UserRateThrottle for logged-in accounts, so you can be stricter with strangers.

Configuring Rate Limits

Set the limits in settings with DEFAULT_THROTTLE_RATES, using a count plus a period like second, minute, hour, or day.

REST_FRAMEWORK = {
    'DEFAULT_THROTTLE_RATES': {
        'anon': '20/hour',
        'user': '1000/day',
    },
}

What Throttling Protects

Throttling shields you from abuse and runaway scripts. When a client goes over, DRF returns a 429 Too Many Requests response. 🛡️

Quick Check

Let us confirm the difference between the two gatekeepers.

Recap: Access and Rate Limits

You can now gate endpoints with permission classes and protect them with throttle rates. Together they keep your API both safe and stable. 🎉

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Izin dan Pembatasan Laju” gratis?

Ya — teks lengkap “Izin dan Pembatasan Laju” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Django Academy, upgrade ke CoddyKit PRO. Kursus Django Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Izin dan Pembatasan Laju”?

Atur siapa yang dapat memanggil API Anda dan seberapa sering Kamu berlatih Django Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Django Academy?

Tidak diperlukan pengalaman sebelumnya. Django Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Izin dan Pembatasan Laju” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Django Academy ini?

Ya. Setiap pelajaran Django Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. ModelViewSet dan Router
  2. Izin dan Pembatasan Laju
  3. Autentikasi Token dan JWT
  4. Pemfilteran, Pencarian, dan Paginasi
← Kembali ke Django Academy