Pengantar Kerangka Django REST: Pengembangan dengan Contoh
Diterbitkan: 2020-10-05Kerangka 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'>×</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.