Membuat REST API Sederhana Dengan Django

Ibnu Ali M 12 Februari 2017

Membuat REST API Sederhana Dengan Django

REST (REpresentational State Transfer) merupakan standar arsitektur komunikasi berbasis web yang sering diterapkan dalam pengembangan layanan berbasis web. Umumnya menggunakan HTTP (Hypertext Transfer Protocol) sebagai protocol untuk komunikasi data.

Arsitektur REST, yang umumnya dijalankan via HTTP (Hypertext Transfer Protocol), melibatkan proses pembacaan laman web tertentu yang memuat sebuah file XML atau JSON. File inilah yang menguraikan dan memuat konten yang hendak disajikan. Setelah melalui sebuah proses definisi tertentu, konsumen akan bisa mengakses antarmuka aplikasi yang dimaksudkan.

pada tutorial ini saya lebih menjelaskan Django Rest API nya , untuk penjelasan mengenai django bisa mengikuti course Django yang disediakan oleh codepolitan.

Persiapan :

  1. Python (2.7, 3.2, 3.3, 3.4, 3.5)
  2. Django (1.8, 1.9, 1.10)
  3. Django Rest Framework ( pip install djangorestframework)

Setelah sudah selesai persiapan setting enviroment. maka langsung saja memulai.

  1. Buat project django terlebih dahulu melalui terminal/cmd dengan cara:
  django-admin.py startproject MusicProject
  1. setelah project sudah dibuat maka lanjut dengan membuat appnya:
  django-admin.py startapp api
  1. setelah project dan app sudah dibuat selanjutnya yaitu menambahkan app yang dibuat tadi dan app rest framework pada settings.py:

     INSTALLED_APPS = (
     		...
     	'rest_framework',
     	'api',
     )
    
  2. buat model sistem yang akan dibuat. from future import unicode_literals from django.db import models

     class Album(models.Model):
     	artist = models.CharField(max_length=250)
     	album_title = models.CharField(max_length=250)
     	genre = models.CharField(max_length=100)
     	album_logo = models.CharField(max_length=1000)
    
     def __str__(self):
     	return self.album_title + ' - ' + self.artist
    
     class Song(models.Model):
     	album = models.ForeignKey(Album,on_delete=models.CASCADE)
     	file_type = models.CharField(max_length=10)
     	song_title =  models.CharField(max_length=250)
    
     def __str__(self):
     	return self.song_title
    

setelah sudah membuat model jangan lupa lakukan makemigrations dan migrate agar isi database sesuai dengan model. 5. setelah sudah terbuat model selanjutnya membuat serializers , ini adalah bagian penting pembuatan endpoint API.

	from .models import Album,Song
	from rest_framework import serializers

	class AlbumSerializer(serializers.ModelSerializer):
		class Meta:
			model = Album
			fields = '__all__' #menampilkan semua field pada class Album

	class SongSerializer(serializers.ModelSerializer):
		class Meta:
			model = Song
			fields = ('album', 'song_title')

Serializer berfungsi untuk mengatur data-data apa saja yang akan kita keluarkan melalui endpoint API, conntohnya di model Song kita punya field album, file_type, dan song_title. nah Kita bisa membuat output API ini hanya mengeluarkan field album dan song_title saja jadi tanpa field file_type.

  1. Selanjutnya yaitu membuat View untuk menampilkan hasil dari serializers. from .models import Album,Song from rest_framework import viewsets from .serializers import AlbumSerializer, SongSerializer

     class AlbumViewSet(viewsets.ModelViewSet):
     	queryset =  Album.objects.all()
     	serializer_class = AlbumSerializer
     
     class SongViewSet(viewsets.ModelViewSet):
     	queryset = Song.objects.all()
     	serializer_class = SongSerializer
    

7 . Membuat urls endpoint API yang telah dibuat di projectname/urls.py. from django.conf.urls import url,include from django.contrib import admin from rest_framework import routers from api import views

	router = routers.DefaultRouter()
	router.register(r'album', views.AlbumViewSet)
	router.register(r'song', views.SongViewSet)
	urlpatterns = [
			url(r'^admin/', admin.site.urls),
			url(r'^api/', include(router.urls)),
			url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
	]

** result :** list endpoint api lendpoint album lendpoint song

banyak cara untuk mendefinisikan serializers, melakukan setting auth and permission , dan masih banyak teknik lebih lanjut silahkan lihat dokumentasi djangrest.

Semoga tutorialnya yang disampaikan bermanfaat :)