Django: REST
Com o objetivo de estudar maneiras de usar os dados do modelo em um formato json, similar ao output de uma API, fui estudar como serializar dados do Django.
A meta é usar o Django Rest Framework no final, mas para isso quero estudar alternativas mais simples.
A primeira alternativa é
Json de um dataframe
url.py
# Consultar: URL/api_df
path('api_df', views_admin.go_api_dataframe, name='go_api_pandas'),
views.py
def go_api_dataframe(request):
# Using Pandas
details = {
'Name': ['Ankit', 'Aishwarya', 'Shaurya', 'Shivangi'],
'Age': [23, 21, 22, 21],
'University': ['BHU', 'JNU', 'DU', 'BHU'],
}
df = pd.DataFrame(details)
result = df.to_json(orient='records')
parsed = json.loads(result)
return JsonResponse(parsed, safe=False)
Json de um model
url.py
# Consultar: URL/api_model
path('api_model', views_admin.go_api_model, name='go_api_modelo'),
views.py
def go_api_model(request):
# Using Model
return JsonResponse(
list(Students.objects.all().values()),
safe=False,
content_type='application/json'
)
Django Rest Framework
- https://www.django-rest-framework.org
pip3 install djangorestframework
INSTALLED_APPS = [
...
'rest_framework',
]
Referências
dddd
REST_FRAMEWORK = {
"DEFAULT_AUTHENTICATION_CLASSES": (
"rest_framework.authentication.SessionAuthentication",
),
}
# Testes
curl -X GET --user {username}:{password} http://localhost:8000/api_rest2
# dddd
curl -X GET --user [email protected]:111 http://localhost:8000/api_rest2 >> output-file.json
# Servidor Local, com Autenticação
curl -X GET --user [email protected]:111 http://localhost:8000/api/rest/?format=json >> output-file.json
# Servidor Heroku, com Autenticação
curl -X GET --user [email protected]:111 https://openescola.herokuapp.com/api/rest/?format=json >> output-file.json
# Servidor Heroku, sem Autenticação
curl -X GET https://openescola.herokuapp.com/api/rest/?format=json >> output-file.json
Deixe um comentário