diff --git a/api/docs/__init__.py b/api/docs/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/api/docs/views.py b/api/docs/views.py new file mode 100644 index 00000000..f68c47c0 --- /dev/null +++ b/api/docs/views.py @@ -0,0 +1,12 @@ +from django.conf import settings +from django.shortcuts import render + +from core.models import Dataset + + +def dynamic_api_docs_view(request): + context = { + "datasets": Dataset.objects.api_visible(), + "api_host": settings.BRASILIO_API_HOST, + } + return render(request, "api/docs.html", context=context) diff --git a/api/templates/api/docs.html b/api/templates/api/docs.html new file mode 100644 index 00000000..2ec9b22c --- /dev/null +++ b/api/templates/api/docs.html @@ -0,0 +1,47 @@ +{% extends "base.html" %} + +{% block title %}Documentação da API{% endblock %} + +{% block content %} + +
Documentação da API
+Aqui você pode encontrar a listagem de todos os datasets, tabelas e campos disponíveis na API do Brasil.io. Além disso, você também encontrará informações sobre como fazer requisições para a API respeitando a autenticação.
+Importante: Utilizar a API desnecessariamente e de maneira não otimizada onera muito nossos servidores e atrapalha a experiência de outros usuários. Por conta disso, nessa documentação vocè também encontrará os links para os arquivos de dados completos de todos os datasets.
+ +Índice
+Para ter mais contexto sobre os porquês dessa autenticação, leia o nosso blogpost "Nossa API será obrigatoriamente autenticada".
+A API do Brasil.IO implementa utilizando o cabeçalho HTTP Authorizaton. Ela espera que o valor desse cabeçalho seja sempre algo no formato Token sua_chave_de_api_aqui
. Este é um exemplo de uma requisição para a raiz da API utilizando o Curl:
curl -X GET -k -H 'Authorization: Token 123412341234' -i 'https://api.brasil.io/v1/'
Para criar e gerenciar suas chaves de API, autentique-se no sistema e acesse a página Chaves da API.
+ +Exemplo de requisição para listar todos os datasets disponíveis na API do Brasil.io:
+curl -X GET -k -H 'Authorization: Token 123412341234' -i 'https://{{ api_host }}/v1/datasets/'
Exemplo de requisição para apresentar informações sobre esse dataset:
+curl -X GET -k -H 'Authorization: Token 123412341234' -i 'https://{{ api_host }}/v1/dataset/{{ dataset.slug }}/'
O dataset completo pode ser baixado diretamente nesta página. Por favor, dê preferência a baixar o dataset completo caso você vá precisar de todos aos dados ao invés de utilizar a API.
+ +{% for table in dataset.tables %} + {% if table.api_enabled %} +Exemplo de requisição para os dados desta tabela:
+curl -X GET -k -H 'Authorization: Token 123412341234' -i 'https://{{ api_host }}/v1/dataset/{{ dataset.slug }}/{{ table.name }}/data/'
{{ field.name }}
({{ field.get_type_display }})
+
+ {% if field.show %}
+ {% if field.show_on_frontend %}{% endif %}
+ {% if not field.show_on_frontend %}{% endif %}
+ {% else %}
+ {% if not field.show_on_frontend %}{% endif %}
+ {% endif %}
+
+ {% if field.frontend_filter %}{% endif %}
+
+ {% if field.searchable %}{% endif %}
+
+ {% if field.has_choices %}{% endif %}
+
+ : {{ field.title }}