bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


django_api

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
Següent revisió Ambdós costats nova versio
django_api [2022/02/24 16:42]
enrique_mieza_sanchez [BasicAuthentication]
django_api [2022/03/04 18:40]
enrique_mieza_sanchez [Objectes aniuats]
Línia 55: Línia 55:
   {"questions": [{"id": 1, "question_text": "Qu\u00e8 vols per sopar?", "pub_date": "2022-02-17T09:42:57Z"}, {"id": 2, "question_text": "Qui guanyar\u00e0 la lliga?", "pub_date": "2022-02-17T09:43:13Z"}]}   {"questions": [{"id": 1, "question_text": "Qu\u00e8 vols per sopar?", "pub_date": "2022-02-17T09:42:57Z"}, {"id": 2, "question_text": "Qui guanyar\u00e0 la lliga?", "pub_date": "2022-02-17T09:43:13Z"}]}
  
 +<WRAP tip>
 Si voleu un //pretty print// del JSON a la línia de comandes podeu fer: Si voleu un //pretty print// del JSON a la línia de comandes podeu fer:
   $ curl localhost:8000/polls/get_questions | python3 -m json.tool   $ curl localhost:8000/polls/get_questions | python3 -m json.tool
Línia 60: Línia 61:
 I per acabar-ho d'adobar, afegim colors amb ''pygmentize -l json'': I per acabar-ho d'adobar, afegim colors amb ''pygmentize -l json'':
   $ curl localhost:8000/polls/get_questions | python3 -m json.tool | pygmentize -l json   $ curl localhost:8000/polls/get_questions | python3 -m json.tool | pygmentize -l json
 +</WRAP>
  
 El //browser// sempre és un tiro segur molt còmode: El //browser// sempre és un tiro segur molt còmode:
Línia 196: Línia 198:
 \\ \\
  
-==== Objectes aniuats ====+===== Objectes aniuats =====
 <WRAP todo> <WRAP todo>
 Exercici amb objectes aniuats: Exercici amb objectes aniuats:
Línia 205: Línia 207:
  
 \\ \\
 +
 +===== URLs personalitzades amb TokenAuthentication del REST framework =====
 +
 +Si volem fer les nostres pròpies URLs per a la API i volem afegir-hi algun dels mètdodes d'autenticació del REST framework, ho podem fer així:
 +
 +<code python>
 +from rest_framework.authentication import TokenAuthentication, BasicAuthentication
 +from rest_framework.permissions import IsAuthenticated
 +from rest_framework.decorators import api_view, authentication_classes, permission_classes
 +from django.http import JsonResponse
 +
 +@api_view(['GET'])
 +@authentication_classes([TokenAuthentication, BasicAuthentication])
 +@permission_classes([IsAuthenticated])
 +def pin_request(request):
 +    return JsonResponse({
 +        "usuari":request.user.username,
 +        "PIN":3142
 +        })
 +
 +urlpatterns += [
 +    path('api/pin_request', pin_request )
 +]
 +</code>
 +
 +\\
 +
  
django_api.txt · Darrera modificació: 2023/04/14 17:06 per enric_mieza_sanchez