Beste manier om Django te gebruiken - REST API

Foto Thomas van Unsplash

Vóór de opkomst van Single Page Applications, zouden applicaties een volledig HTML-document met CSS op de server weergeven met behulp van PHP, Java of een andere taal en JavaScript / JQuery- en AJAX-aanvragen gebruiken om een ​​specifieke set interacties te bieden die een gebruiker met de webpagina kan hebben . Dit werkte heel goed met het templingsysteem van Django en statische bestanden, omdat Django al het werk voor je deed, bestanden laden die nodig waren voor een specifieke URL.

Maar toen kwamen Single Page Applications.

In plaats van elke pagina opnieuw te laden vanwege een actie zoals een klik op een knop - en de gebruiker iets langer te laten wachten - zorgen toepassingen met één pagina voor hoge herlaadsnelheden tussen pagina's met asynchrone HTTP-aanvragen, voor een naadloze gebruikerservaring, maar met een opoffering van initiële laadtijd. Velen hebben of zijn bezig met het overschakelen naar het gebruik van Javascript-frameworks voor hun front-end stack en splitsen de front-end vrijwel van de back-end. Dit maakt in wezen Django-sjablonen onbruikbaar.

Naar mijn mening is de beste manier om Django voor webapplicaties te gebruiken, het te gebruiken om een ​​REST API te bouwen en front-end frameworks te gebruiken - React.js, Angular.js, Ember.js, Vue.js - om uw webpagina weer te geven , die volledig onafhankelijk van Django kan zijn.

REST API's

In wezen is een API de interface die de server / backend biedt, zodat apps met hen kunnen praten. Een REST API is een API die een reeks regels volgt die REST (Representational State Transfer) worden genoemd en een API-eindpunt zijn bepaalde functies van de interface.

Laten we bijvoorbeeld Instagram nemen, die hun API openbaar heeft gemaakt. Dus stel dat je informatie wilde weten over gebruiker 1234567, zijn / haar naam, hoeveel volgers ze hebben, hun biografie, etc. Gegeven een TOEGANGSTOK die je van Instagram krijgt, dien je een verzoek in bij een eindpunt:

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

Instagram-webservers zullen dan bepaalde functies uitvoeren, waaronder zoeken in hun database om die gebruiker te krijgen en zullen deze tekst dan terugsturen in JSON-indeling:

{
 'Data': {
     "Id": "1234567",
     "Gebruikersnaam": "snoopdogg",
     "Full_name": "Snoop Dogg",
     "Profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg",
     "Bio": "Dit is mijn bio",
     "Website": "http://snoopdogg.com",
     "Telt": {
         "Media": 1320,
         "Volgt": 420,
         "Follow_by": 3410
     }
  }
}

Als je meer informatie wilt, zoals hun volgers, moet je een ander verzoek indienen bij een andere URL om een ​​lijst met hun volgers te krijgen. Er zijn ook manieren om gebruikers toe te voegen, foto's toe te voegen, etc. als je wat gegevens opgeeft, maar het is aan Instagram om te bepalen of ze het publiek dit willen toestaan. Dit is hoe apps van derden worden gemaakt om bij te houden wie je niet meer heeft gevolgd. In feite noemen de mobiele apps van Instagram veel van deze API-functies en geven deze gegevens op een zeer slanke en snelle manier weer (het is eigenlijk heel fascinerend in hoe ze hun app snel maken, de CTO van Instagram praat er hier over)

Django REST Framework

Een geweldige en gebruikelijke manier om een ​​API met Django te implementeren, is door Django REST Framework te gebruiken, een Django-pakket boordevol krachtige maar flexibele tools om een ​​REST API te bouwen. Hiermee kunt u uw gegevens serialiseren (uw modelobjecten vertalen naar - in dit geval tekst), snel weergaven / eindpunten schrijven en testen, authenticatie toevoegen en nog veel meer.

Hiermee kun je je back-end van je front-end scheiden, waardoor je kunt uitbreiden met andere indelingen zoals IOS en Android-applicaties zonder je alleen aan webapps te houden. Bovendien worden uw front-end en back-end niet op een zeer strakke en complexe manier geïntegreerd, waardoor debuggen een ware hel wordt. Zelfs bedrijven zoals Instagram en Doordash hebben Django gebruikt om hun API als hun back-endservice te implementeren, waarbij Instagram React.js gebruikt om hun web-app te ontwikkelen.

Naar mijn mening is dit de beste manier om Django te gebruiken.

Meer middelen

  • Wat is REST?
  • Officieel Django REST Framework
  • Django REST Framework-zelfstudie

Als je het leuk vond om te lezen, laat dan een klap / opmerking achter! Ik ben hier behoorlijk nieuw in en wil graag beter worden - elke reactie is welkom :)

Bekijk ook mijn andere berichten!