APIView e @api_view per le funzioni
Creare endpoint in due modi
APIView e @api_view per le funzioni è una lezione Django Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Django Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Django Academy include 4 lezioni in totale.
Due modi per creare endpoint
DRF permette di scrivere endpoint come classi con APIView oppure come semplici funzioni decorate con @api_view. Entrambi parlano lo stesso dialetto JSON.
Lo stile basato sulle classi
APIView estende la View di Django, ma offre gratuitamente l'analisi delle richieste, la negoziazione dei contenuti e una gestione ordinata delle risposte di DRF.
from rest_framework.views import APIViewI metodi corrispondono ai verbi
In una APIView scriva un metodo per ogni verbo HTTP: get per le letture, post per le creazioni e così via, mantenendo ogni azione chiaramente separata.
class BookList(APIView):
def get(self, request):
...
def post(self, request):
...Restituire una Response
Invece di HttpResponse, restituisca l'oggetto Response di DRF, che esegue il rendering in JSON o nella browsable API in base alla richiesta.
from rest_framework.response import Response
return Response({'ok': True})Leggere request.data
DRF analizza il corpo della richiesta al posto Suo: legga quindi il JSON inviato da request.data come un normale dict Python, senza decodificarlo manualmente.
title = request.data['title']Lo stile basato sulle funzioni
Per gli endpoint semplici, il decoratore @api_view trasforma una normale funzione in una view DRF, indicando quali metodi HTTP accetta.
from rest_framework.decorators import api_viewDichiarare i metodi consentiti
Passi i verbi al decoratore. Qualsiasi metodo non elencato riceverà automaticamente 405 Method Not Allowed, quindi non dovrà gestirlo personalmente.
@api_view(['GET', 'POST'])
def books(request):
...Lo stesso oggetto Response
Le view basate su funzioni usano la stessa Response di DRF, quindi può combinare i due stili nello stesso progetto senza difficoltà.
return Response(serializer.data)Scegliere lo stile
Scelga @api_view quando un endpoint è piccolo e occasionale; scelga APIView quando desidera metodi riutilizzabili e organizzati in una classe.
Impostare lo stato
Entrambi gli stili permettono di passare status= a Response, così i client ricevono il codice HTTP corretto, ad esempio 201 quando crea qualcosa di nuovo.
Response(data, status=201)La stessa potenza, due forme
Sia con le classi sia con le funzioni, ottiene l'analisi delle richieste, le risposte e la gestione dello stato di DRF; la differenza riguarda soprattutto la struttura e le preferenze personali.
Verifica rapida
Che cosa fa @api_view a una funzione semplice?
Riepilogo: due stili di view
Può creare endpoint con APIView basate su classi o con @api_view basate su funzioni; entrambe restituiscono una Response di DRF. Scelga la forma più adatta. 🧩
Impara Python con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «APIView e @api_view per le funzioni» è gratuita?
Sì — il testo completo di «APIView e @api_view per le funzioni» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Django Academy, passa a CoddyKit PRO. Il corso Django Academy include 4 lezioni in totale.
Cosa imparerò in «APIView e @api_view per le funzioni»?
Creare endpoint in due modi Eserciti Django Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Django Academy?
Non è richiesta alcuna esperienza precedente. Django Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «APIView e @api_view per le funzioni»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Django Academy?
Sì. Ogni lezione Django Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Installare e configurare DRF
- Serializer: dal modello a JSON
- APIView e @api_view per le funzioni
- L'API navigabile e i codici di stato