Pengantar Kerangka Django REST: Pengembangan dengan Contoh

Diterbitkan: 2020-10-05

Kerangka Kerja Django REST didistribusikan secara luas sebagai paket Python standar yang mungkin diperlukan pengguna untuk memulai pengembangan RESTful API. Ini canggih, kuat, sangat mudah digunakan, dan menawarkan versi API yang menarik dan dapat dijelajahi. Kerangka Kerja Django REST menyediakan opsi untuk mengembalikan objek JSON. Kerangka kerja ini menawarkan serialisasi model yang kuat dan menampilkan data menggunakan tampilan berbasis fungsi dasar sekaligus dalam penampil REST sepenuhnya. Ketahui lebih banyak tentang kerangka kerja Django REST di bawah ini:

Daftar isi

Apa itu Kerangka REST Django?

Kerangka Kerja Django REST adalah kit alat yang fleksibel dan kuat yang memudahkan pengembang untuk membangun API web. Ini juga menawarkan tampilan umum dan serializer berbasis kelas untuk API. Menjadi kode sumber, disingkat DRF, yang mewakili perpustakaan Python untuk mengembangkan antarmuka pemrograman aplikasi web. Seperti dalam artikel ini, kita berbicara tentang API pengembangan dengan petunjuk langkah demi langkah.

Tetapi sebelum memulai dengan panduan ini, penting untuk memahami mengapa kerangka kerja itu penting. Banyak kerangka kerja yang tersedia memungkinkan pengembang untuk membangun API untuk aplikasi blok mereka dengan mudah, tetapi kerangka kerja Django REST lebih disukai. Kerangka kerja ini nyaman digunakan dalam beberapa cara dan menawarkan keuntungan yang disebutkan di bawah-

  • Ini menawarkan browser web Antarmuka Pemrograman Aplikasi yang mumpuni, yang merupakan kemenangan besar bagi pengembang
  • Ini memiliki kebijakan otentikasi termasuk paket untuk OAuth1, OAuth2, dll
  • prosesor serialisasi di dalamnya mendukung sumber data ORM dan non-ORM
  • kerangka kerja ini memiliki dokumentasi yang luas dan menawarkan dukungan komunitas yang luar biasa
  • Ini digunakan dan dipercaya oleh platform hebat, termasuk Mozilla, Heroku, RedHat, dll.

Baca: Aplikasi Django: Semua yang Perlu Anda Ketahui Tentang

Setel Pengembangan Kerangka Kerja Django REST

Sebagai permulaan, Anda harus menginstal dependensi Python untuk sistem operasi. Jika Anda menggunakan platform Windows, Anda dapat dengan mudah menginstal platform Linux sebagai sistem operasi sekunder Anda dengan kotak virtual atau perintah manual. Untuk melanjutkan dengan kerangka kerja, Anda dapat menggunakan alat manajemen Python yang efektif dan nyaman.

Sebagian besar alat adalah penolong masuk. Mereka memungkinkan pengembang untuk mengubah versi Python dengan cepat, mengatur versi khusus proyek, mengelola lingkungan virtual, dan menginstal beberapa versi pada sistem. Jika Anda menggunakan sistem operasi Linux atau Mac, akan mudah untuk menginstalnya.

Dengan bantuan kerangka kerja Django REST , kita dapat mengonversi aplikasi non-RESTful menjadi aplikasi RESTful. Ini termasuk prosedur yang disebutkan di bawah ini-

Pengaturan DRF

Untuk Pengaturan DRF, Anda harus menginstal-

Kerang

$pip install djangorestframework

$ pip beku > persyaratan.txt

Perbarui pengaturan: py:

Python

INSTALLED_APPS = (

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'bicara',

'rest_framework'

)

Struktur RESTful

Dalam pengembangan RESTful API, titik akhir mewakili struktur dan akses pengguna dari aplikasi dengan bantuan metode seperti GET, PUT, POST, DELETE. Titik akhir ini diatur secara logis di sekitar elemen dan koleksi, yang keduanya dihitung sebagai sumber daya. Jika ada satu sumber daya maka tautan yang sesuai akan digunakan sebagai URL untuk elemen dan koleksi.

DAPATKAN

POS

TARUH

MENGHAPUS

/postingan/

Tampilkan semua postingan

Tambahkan postingan baru

Perbarui semua posting

Hapus semua postingan

/postingan/<id>

Tampilkan <id>

T/A

Perbarui <id>

Hapus identitas

Serializer dan Tampilan

Blok pembangun utama dari kerangka kerja Django REST adalah serializer, dan mereka digunakan untuk menguraikan representasi dari berbagai catatan data berdasarkan model Django. Serializer adalah kelas Python standar yang dapat mewarisi perilaku model dari kerangka kerja.

Di dalam kelas serializers, ada fieldset terpisah yang memanfaatkan tipe data dari paket mereka dari kerangka kerja yang sama. Mereka juga memperhatikan kesamaan antara kerangka kerja dan kelas. Kelas serializer sendiri tidak berpikir, dan mereka terintegrasi dengan tampilan yang mengelola sebagian besar logika layanan REST. Selanjutnya, ia menggunakan kelas serializer untuk mengubah data. Misalnya, metode tampilan Django biasa adalah-

dari coffeehouse.stores.models import Store

dari coffeehouse.stores.serializers impor StoreSerializer

dari rest_framework.decorators impor api_view

dari rest_framework.response impor Respon

@api_view(['GET','POST','HAPUS'])

def rest_store(permintaan):

jika request.method == 'GET':

toko = Toko.objek.semua()

serializer = StoreSerializer (toko, banyak = Benar)

kembali Respon (serializer.data)

elif request.method == 'POST':

… #logika untuk operasi HTTP POST

elif request.method == 'HAPUS':

… #logika untuk operasi HTTP DELETE

Tampilan Berbasis Kelas

Dengan bantuan tampilan berbasis kelas, kerangka kerja Django REST menyediakan akses ke fungsi tertinggi dan kompleks pengguna. Tampilan berbasis kelas menawarkan fungsi kelas Python yang benar-benar lengkap dan memungkinkan tampilan Django untuk dengan mudah dioperasikan dengan bantuan prinsip pemrograman berorientasi objek yang mengarah pada penggunaan ulang yang lebih besar bersama dengan waktu implementasi yang singkat.

Tampilan berbasis kelas Django menyoroti pendekatan yang kuat untuk membangun tampilan Django, dan mereka juga merupakan alternatif untuk metode yang digunakan untuk membangun API. Untuk mengembangkan tampilan berbasis kelas, penting untuk membuat kelas yang dapat mewarisi dari salah satu kelas lainnya. Sebagai contoh:

# views.py

dari Django.views.generic import TemplateView

kelas TentangIndex(TemplateView):

template_name = 'index.html'

def get_context_data(diri sendiri, **kwargs):

# **kwargs berisi nilai inisialisasi konteks kata kunci (jika ada)

# Panggil implementasi basis untuk mendapatkan konteks

konteks = super(TentangIndeks, mandiri).get_context_data(**kwargs)

# Tambahkan data konteks untuk diteruskan ke template

context['aboutdata'] = 'Data khusus'

kembali konteks

#urls.py

dari coffeehouse.about.views impor AboutIndex

dari jalur impor Django.urls

pola url = [

path('about/index/',AboutIndex.as_view(),{'onsale':True}),

Checkout: 12 Pertanyaan & Jawaban Wawancara Django Teratas untuk Pemula

Perbarui Tampilan

Agar sesuai dengan struktur aplikasi RESTful, penting untuk memfaktorkan ulang tampilan saat ini. Anda dapat mengomentari tampilan ini dan menambahkannya sebagai-

Python

dari django.shortcuts impor render

dari django.http impor HttpResponse

dari rest_framework.decorators impor api_view

dari rest_framework.response impor Respon

dari talk.models import Post

dari talk.serializers, impor PostSerializer

dari talk.forms impor PostForm

def rumah (permintaan):

tmpl_vars = {'form': PostForm()}

kembali render(permintaan, 'talk/index.html', tmpl_vars)

@api_view(['GET'])

def post_collection(permintaan):

jika request.method == 'GET':

posting = Posting.objects.all()

serializer = PostSerializer(postingan, banyak=Benar)

kembali Respon (serializer.data)

@api_view(['GET'])

def post_element(permintaan, pk):

mencoba:

posting = Posting.objects.get(pk=pk)

kecuali Post.DoesNotExist:

kembalikan HttpResponse(status=404)

jika request.method == 'GET':

serializer = PostSerializer(posting)

kembali Respon (serializer.data)

Penjelasan

  • Dalam instruksi yang diberikan di atas, dekorator @api_view menganalisis permintaan HTTP yang sesuai, yang diteruskan ke fungsi tampilan.
  • Sekarang tampilan menggunakan satu posting jika itu untuk elemen atau mengambil seluruh data jika itu untuk koleksi
  • Akhirnya, data sekarang diserialisasi ke JSON dan dikembalikan sesuai

API yang Dapat Dijelajahi Web Atau URL yang Diperbarui

Beberapa URL yang diperbarui untuk Python adalah:

# URL Bicara

dari pola impor django.conf.urls, URL

urlpattern = pola(

'talk.views',

url(r'^$', 'rumah'),

# api

url(r'^api/v1/posts/$', 'post_collection'),

url(r'^api/v1/posts/(?P<pk>[0-9]+)$', 'post_element')

)

Refactor Untuk Integrasi API RESTful

Ini termasuk metode HTTP utama seperti-

DAPATKAN

Pemuatan halaman awal, penting untuk menampilkan posting, dan untuk melakukan itu, Anda dapat menambahkan permintaan ini:

muat_posting()

// Muat semua posting pada pemuatan halaman

fungsi load_posts() {

$.ajax({

url : “api/v1/posts/”, // titik akhir

ketik : “GET”, // metode http

// menangani respons yang berhasil

sukses : function(json) {

for (var i = 0; i < json.length; i++) {

console.log(json[i])

$(“#talk”).prepend(“<li id='post-“+json[i].id+”'><strong>”+json[i].text+”</strong> – <em> “ +json[i].author+”</em> – <span> “+json[i].created+

“</span> – <a id='delete-post-“+json[i].id+”'>hapus saya</a></li>”);

}

},

// menangani respons yang tidak berhasil

kesalahan : fungsi(xhr,errmsg,err) {

$('#results').html(“<div class='alert-box alert radius' data-alert>Ups! Kami menemukan kesalahan: “+errmsg+

” <a href='#' class='close'>&times;</a></div>”); // tambahkan kesalahan ke dom

console.log(xhr.status + “: ” + xhr.responseText); // berikan sedikit info lebih lanjut tentang kesalahan ke konsol

}

});

};

POS

Permintaan POST dikelola dengan cara yang sama dan Anda dapat mengujinya dengan memperbarui tampilan. Anda dapat memperbarui fungsi post_collection () di views.py:

@api_view(['GET', 'POST'])

def post_collection(permintaan):

jika request.method == 'GET':

posting = Posting.objects.all()

serializer = PostSerializer(postingan, banyak=Benar)

kembali Respon (serializer.data)

elif request.method == 'POST':

data = {'teks': request.DATA.get('the_post'), 'penulis': request.user.pk}

serializer = PostSerializer(data=data)

jika serializer.is_valid():

serializer.save()

kembalikan Respons(serializer.data, status=status.HTTP_201_CREATED)

kembalikan Respons(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

Baca Juga: Gaji Pengembang Django di India

Garis bawah

Bagian REST kerangka kerja Django REST yang sebenarnya cukup sederhana dan yang harus Anda lakukan adalah memperbarui fungsi elemen pos untuk menangani permintaan. Jika Anda masih memiliki pertanyaan maka ada sejumlah kerangka kerja Django REST dan sumber daya untuk improvisasi.

Jika Anda tertarik untuk mempelajari lebih lanjut tentang Django dan bahasa dan alat pengembang full-stack lainnya, lihat Diploma PG upGrad & IIIT-B dalam Pengembangan Perangkat Lunak Full-stack yang dirancang untuk profesional yang bekerja dan menawarkan 500+ jam pelatihan yang ketat, 9+ proyek, dan tugas, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.

Persiapkan Karir Masa Depan

UPGRAD DAN DIPLOMA PG IIIT-BANGALORE DALAM PENGEMBANGAN PERANGKAT LUNAK FULL STACK
Daftar Hari Ini