Ο καλύτερος τρόπος για να χρησιμοποιήσετε το Django - REST API

Φωτογραφία Θωμά από την Unsplash

Πριν από την άνοδο των εφαρμογών μιας σελίδας, οι εφαρμογές θα καθιστούσαν ένα πλήρες έγγραφο HTML με CSS στο διακομιστή χρησιμοποιώντας PHP, Java ή άλλη γλώσσα και θα χρησιμοποιούσαν JavaScript / JQuery και AJAX αιτήματα για να παρέχουν ένα συγκεκριμένο σύνολο αλληλεπιδράσεων που μπορεί να έχει ένας χρήστης με την ιστοσελίδα . Αυτό λειτούργησε πολύ καλά με το templating σύστημα και τα στατικά αρχεία του Django, αφού ο Django έκανε όλη τη δουλειά για εσάς, φορτώνοντας τα αρχεία που χρειάζονταν για μια συγκεκριμένη διεύθυνση URL.

Αλλά στη συνέχεια ήρθε η Single Page Applications.

Αντί της επαναφόρτωσης κάθε σελίδας λόγω μιας ενέργειας όπως ένα κλικ στο κουμπί - και κάνοντας τον χρήστη να περιμένει λίγο περισσότερο - Οι Εφαρμογές μιας σελίδας επιτρέπουν γρήγορες επαναφορτώσεις μεταξύ σελίδων με ασύγχρονα αιτήματα HTTP, παρέχοντας απρόσκοπτη εμπειρία χρήστη, αλλά με θυσία αρχικός χρόνος φόρτωσης. Πολλοί έχουν ή βρίσκονται σε εξέλιξη στη μετάβαση στη χρήση πλαισίων Javascript για τη στοίβα τους στο μπροστινό μέρος και στην κατάτμηση του front-end από το back-end. Αυτό ουσιαστικά καθιστά άχρηστα τα πρότυπα Django.

Κατά τη γνώμη μου, ο καλύτερος τρόπος για να χρησιμοποιήσετε το Django για εφαρμογές ιστού είναι να το χρησιμοποιήσετε για να δημιουργήσετε ένα API REST και να χρησιμοποιήσετε πλαίσια front-end - React.js, Angular.js, Ember.js, Vue.js - για να προβάλετε την ιστοσελίδα σας , η οποία μπορεί να είναι εντελώς ανεξάρτητη από το Django.

REST APIs

Ουσιαστικά, ένα API είναι η διασύνδεση που παρέχει ο διακομιστής / backend, έτσι ώστε οι εφαρμογές να μπορούν να τους μιλήσουν. Ένα API REST είναι ένα API που ακολουθεί ένα σύνολο κανόνων που ονομάζεται REST (Representational State Transfer) και ένα τελικό σημείο API είναι ορισμένες λειτουργίες της διασύνδεσης.

Ας πάρουμε το Instagram για παράδειγμα, που δημοσίευσε το API τους στο κοινό. Λοιπόν, λέτε ότι θέλετε να μάθετε πληροφορίες σχετικά με το χρήστη 1234567, το όνομα του / της, πόσοι οπαδοί έχουν, το βιογραφικό τους, κλπ. Δεδομένου του ACCESS-TOKEN που λαμβάνετε από το Instagram, κάνετε ένα αίτημα σε ένα τελικό σημείο:

https://api.instagram.com/v1/users/12345678/?access_token=ACCESS-TOKEN

Οι διακομιστές ιστού Instagram θα εκτελέσουν ορισμένες λειτουργίες που περιλαμβάνουν αναζήτηση μέσω της βάσης δεδομένων τους για να αποκτήσουν αυτόν τον χρήστη και στη συνέχεια θα επιστρέψουν αυτό το κείμενο, το οποίο είναι σε μορφή JSON:

{
 "Δεδομένα": {
     "Id": "1234567",
     "Όνομα χρήστη": "snoopdogg",
     "Full_name": "Snoop Dogg",
     "Profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg",
     "Bio": "Αυτό είναι το βιολογικό μου",
     "Ιστοσελίδα": "http://snoopdogg.com",
     "Μετράει": {
         "Μέσα": 1320,
         "Ακολουθεί": 420,
         "Followed_by": 3410
     }}
  }}
}}

Αν θέλετε περισσότερες πληροφορίες, όπως οι οπαδοί τους, θα πρέπει στη συνέχεια να κάνετε ένα άλλο αίτημα σε διαφορετική διεύθυνση URL για να λάβετε μια λίστα με τους οπαδούς τους. Υπάρχουν επίσης τρόποι για να προσθέσετε χρήστες, να προσθέσετε φωτογραφίες κ.λπ. εάν δώσετε κάποια δεδομένα, αλλά εξαρτάται από το εάν θα επιτρέψουν στο κοινό να το κάνει. Με αυτόν τον τρόπο δημιουργούνται οι εφαρμογές τρίτων μερών για να παρακολουθείτε ποιος σας απείλησε. Στην πραγματικότητα, οι εφαρμογές κινητής τηλεφωνίας του Instagram αποκαλούν μια δέσμη αυτών των λειτουργιών API και εμφανίζουν αυτά τα δεδομένα με έναν πολύ κομψό και γρήγορο τρόπο (είναι πραγματικά πολύ συναρπαστικό για το πώς κάνουν την εφαρμογή τους γρήγορα, ο CTO της Instagram μιλάει εδώ)

Django REST Framework

Ένας μεγάλος και κοινός τρόπος για την εφαρμογή ενός API με το Django είναι η χρήση του Django REST Framework, ενός πακέτου Django γεμάτου με ισχυρά αλλά ευέλικτα εργαλεία για την κατασκευή ενός API REST. Σας επιτρέπει να κάνετε σειριοποίηση των δεδομένων σας (μεταφράζοντας τα αντικείμενα του μοντέλου σας σε - σε αυτή την περίπτωση, κείμενο), να γράφετε γρήγορα τις προβολές / τελικά σημεία και να τα δοκιμάζετε, να προσθέτετε έλεγχο ταυτότητας και πολλά άλλα.

Με αυτό, θα μπορείτε να διαχωρίζετε το back-end από το front-end, επιτρέποντάς σας να επεκτείνετε με άλλες μορφές, όπως εφαρμογές IOS και Android, χωρίς να παραμένετε μόνο σε εφαρμογές ιστού. Επιπλέον, το front-end και το back-end σας δεν θα ενσωματωθούν με έναν πολύ σφιχτό και πολύπλοκο τρόπο, που κάνουν το debugging μια ζωντανή κόλαση. Ακόμη και εταιρείες όπως το Instagram και το Doordash χρησιμοποίησαν το Django για να εφαρμόσουν το API τους ως υπηρεσία back-end, ενώ το Instagram χρησιμοποίησε το React.js για να αναπτύξει την εφαρμογή τους στο διαδίκτυο.

Αυτό, κατά τη γνώμη μου, είναι ο καλύτερος τρόπος για να χρησιμοποιήσετε το Django.

Περισσότερες πηγές

  • Τι είναι το REST;
  • Επίσημο πλαίσιο Django REST
  • Django REST Framework tutorial

Εάν σας άρεσε να το διαβάσετε, παρακαλώ αφήστε ένα χτύπημα / σχόλιο! Είμαι πολύ νέος σε αυτό και θα ήθελα να γίνω καλύτερος - οποιαδήποτε απάντηση είναι ευπρόσδεκτη :)

Δείτε επίσης τις άλλες μου θέσεις!