Master Django REST Framework: Cloning IMDB API Step-by-Step

Pelajari cara membangun API canggih dengan Django REST Framework! Ikuti panduan langkah demi langkah untuk mengkloning IMDB API dan tingkatkan keterampilan pemrograman Anda sekarang!

By WGS INDONESIA
4.9/4.9
Indonesia
Rp 43,750.00 GRATIS
E-COURSE banner with text and icons representing Artificial Intelligence and video learning

Detail Pembelajaran

Master Django REST Framework: Cloning IMDB API Step-by-Step
  • Django, REST Framework, API Development, IMDB Clone, Web Development, Tutorial langkah-demi-langkah

Baca Online

Master Django REST Framework: Cloning IMDB API Step-by-Step

Daftar Isi

  1. Pendahuluan
  2. Persiapan dan Setup Project
  3. Membuat Model untuk Film dan Review
  4. Membuat Serializers
  5. Membuat Views dan API Endpoints
  6. Routing dan URL Configuration
  7. Testing API dengan Postman dan Curl
  8. Deployment dan Tips Lanjutan
  9. Sumber Belajar dan Referensi

Pendahuluan

Dalam ebook ini, Anda akan belajar bagaimana membangun sebuah API mirip IMDB menggunakan Django REST Framework (DRF). API ini akan memungkinkan Anda untuk mengelola data film, termasuk detail film dan review dari pengguna.

Django REST Framework adalah toolkit yang powerful dan fleksibel untuk membangun Web APIs dengan Django. Dengan mengikuti langkah demi langkah, Anda akan memahami konsep dasar hingga lanjutan dalam membangun RESTful API.

Ilustrasi konsep API dengan Django REST Framework, menampilkan diagram alur data antara client dan server

Persiapan dan Setup Project

Langkah pertama adalah menyiapkan environment dan membuat project Django baru.

  1. Install Python dan Virtual Environment
    Pastikan Python sudah terinstall. Buat virtual environment untuk isolasi project:
    python -m venv env
    source env/bin/activate  # Linux/Mac
    env\Scripts\activate     # Windows
  2. Install Django dan Django REST Framework
    Jalankan perintah berikut:
    pip install django djangorestframework
  3. Buat Project dan Aplikasi Baru
    Buat project dan aplikasi bernama imdb_clone dan movies :
    django-admin startproject imdb_clone
    cd imdb_clone
    python manage.py startapp movies
  4. Tambahkan aplikasi ke INSTALLED_APPS
    Edit imdb_clone/settings.py dan tambahkan:
    INSTALLED_APPS = [
        ...
        'rest_framework',
        'movies',
    ]
  5. Jalankan server untuk memastikan setup berhasil
    python manage.py runserver
    Buka http://127.0.0.1:8000/ di browser, Anda akan melihat halaman default Django.
Tampilan terminal dengan perintah setup project Django dan instalasi Django REST Framework

Membuat Model untuk Film dan Review

Selanjutnya, kita buat model untuk menyimpan data film dan review pengguna.

Kode di movies/models.py :

from django.db import models

class Movie(models.Model):
    title = models.CharField(max_length=255)
    description = models.TextField()
    release_year = models.PositiveIntegerField()
    director = models.CharField(max_length=255)
    genre = models.CharField(max_length=100)
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

class Review(models.Model):
    movie = models.ForeignKey(Movie, related_name='reviews', on_delete=models.CASCADE)
    reviewer_name = models.CharField(max_length=100)
    rating = models.PositiveSmallIntegerField()
    comment = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return f'Review for {self.movie.title} by {self.reviewer_name}'
      

Setelah membuat model, jalankan migrasi:

python manage.py makemigrations
python manage.py migrate
Diagram relasi database antara tabel Movie dan Review dengan atribut lengkap

Membuat Serializers

Serializers mengubah data model menjadi format JSON dan sebaliknya. Buat file movies/serializers.py dan isi dengan:

from rest_framework import serializers
from .models import Movie, Review

class ReviewSerializer(serializers.ModelSerializer):
    class Meta:
        model = Review
        fields = ['id', 'reviewer_name', 'rating', 'comment', 'created_at']

class MovieSerializer(serializers.ModelSerializer):
    reviews = ReviewSerializer(many=True, read_only=True)

    class Meta:
        model = Movie
        fields = ['id', 'title', 'description', 'release_year', 'director', 'genre', 'created_at', 'reviews']
      

Dengan serializer ini, kita bisa menampilkan film beserta review-reviewnya dalam satu response JSON.

Contoh kode serializer dan contoh output JSON yang menampilkan data film dan review

Membuat Views dan API Endpoints

Kita akan menggunakan ViewSets untuk membuat endpoint CRUD secara otomatis.

Isi movies/views.py dengan:

from rest_framework import viewsets
from .models import Movie, Review
from .serializers import MovieSerializer, ReviewSerializer

class MovieViewSet(viewsets.ModelViewSet):
    queryset = Movie.objects.all()
    serializer_class = MovieSerializer

class ReviewViewSet(viewsets.ModelViewSet):
    queryset = Review.objects.all()
    serializer_class = ReviewSerializer
      

Dengan ini, Anda sudah memiliki API untuk mengelola film dan review dengan endpoint standar seperti GET, POST, PUT, DELETE.

Diagram alur API endpoints untuk Movie dan Review dengan metode HTTP GET, POST, PUT, DELETE

Routing dan URL Configuration

Tambahkan routing otomatis menggunakan routers di movies/urls.py :

from rest_framework import routers
from django.urls import path, include
from .views import MovieViewSet, ReviewViewSet

router = routers.DefaultRouter()
router.register(r'movies', MovieViewSet)
router.register(r'reviews', ReviewViewSet)

urlpatterns = [
    path('', include(router.urls)),
]
      

Kemudian, di imdb_clone/urls.py , tambahkan include untuk aplikasi movies:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('movies.urls')),
]
      

Sekarang API Anda dapat diakses melalui /api/movies/ dan /api/reviews/ .

Diagram struktur routing URL API dengan path /api/movies dan /api/reviews

Testing API dengan Postman dan Curl

Anda dapat menguji API menggunakan Postman atau curl. Contoh curl untuk mendapatkan daftar film:

curl -X GET http://127.0.0.1:8000/api/movies/

Contoh menambahkan film baru dengan curl:

curl -X POST http://127.0.0.1:8000/api/movies/ \
-H "Content-Type: application/json" \
-d '{
  "title": "Inception",
  "description": "A mind-bending thriller by Christopher Nolan.",
  "release_year": 2010,
  "director": "Christopher Nolan",
  "genre": "Sci-Fi"
}'
      

Di Postman, Anda bisa membuat request GET, POST, PUT, DELETE dengan mudah dan melihat response JSON secara interaktif.

Tampilan aplikasi Postman sedang melakukan request GET ke API movies

Deployment dan Tips Lanjutan

Setelah API berjalan dengan baik di lokal, Anda bisa deploy ke platform seperti Heroku, DigitalOcean, atau AWS.

Tips penting:

  • Gunakan django-environ untuk mengelola environment variables.
  • Gunakan database production seperti PostgreSQL.
  • Amankan API dengan authentication (Token, JWT, OAuth).
  • Gunakan django-cors-headers untuk mengatur CORS jika API diakses dari frontend berbeda domain.
  • Optimalkan query dengan select_related dan prefetch_related untuk performa.
Diagram deployment aplikasi Django REST Framework ke cloud platform seperti Heroku

Sumber Belajar dan Referensi

Berikut beberapa sumber belajar yang sangat membantu untuk memperdalam Django REST Framework dan pengembangan API:

Ilustrasi buku dan laptop yang menunjukkan sumber belajar Django REST Framework

Edukasi Terkait