brasil.io
brasil.io copied to clipboard
Adiciona página com documentação da API
Fixes #204
Finalmente parei para implementar a documentação dinâmica da API do Brasil.io. Seguem uns prints de como está a carinha dela agora:
Ainda não revisei tudo, mas gostaria de ter as legendas aprimoradas com relação à documentação em markdown que fiz para o dataset covid19 (o ícone de "busca" funcionou bem no markdown e acho que podemos expandir aqui para ter um resultado mais fácil de entender e bonito). Acho melhor deixar apenas as características "positivas" que o Field
tem expressas em ícones e ocultar as que ele não tem, exemplo: se é filtrável, aparece ícone de filtro, mas se não é, não aparece.
Além disso, acho importante termos uma tooltip em cada ícone, explicando o que ele quer dizer (assim não precisamos de uma legenda explícita ocupando espaço na página).
Abaixo listo as características de cada Field
e os ícones (usando font-awesome) que cada uma deve ter:
Visibilidade
-
if field.show and field.show_on_frontend:
eye solid, legenda: "Esse campo é visível na interface Web, na API e no download completo" -
if field.show and not field.show_on_frontend:
low vision solid, legenda: "Esse campo não é visível na interface Web, apenas na API e no download completo" -
if not field.show and not field.show_on_frontend:
eye-slash solid, legenda: "Esse campo é usado internamente e fica visível apenas no download completo"
Filtragem
-
if field.frontend_filter:
filter solid, legenda: "Você pode fazer filtros por esse campo na interface Web e na API" -
if not field.frontend_filter:
sem ícone (não encontrei um "filter-slash" e é melhor economizar, nesse caso)
Buscabilidade
-
if field.searchable:
search solid, legenda: "Você pode utilizar a busca de texto completo nesse campo"
Múltipla escolha
-
if field.has_choices:
list-ul solid, legenda: "Esse campo possui valores categóricos"
No caso desses campos, acho que devemos também listar quais opções são possíveis para o filtro (talvez possa ficar escondido e aparecer quando a pessoa clicar).
@turicas meus comentários sobre 2 pontos:
Listar field.options quando field.has_choices is True
Não acho que isso precise estar na documentação da API porque tem campos que tem muitas opções para listar. A informação de que ele é um campo com opções me parece já bastar. Isso, principalmente depois de termos a parte dos metadados na API. Lá sim, na descrição de metadados da tabela, teríamos o campo e todas as opções válidas.
Melhorar página de metadados (descrito abaixo)
Juntei essas duas questẽos na issue #508 acho porque são tarefas que fogem ao escopo da documentação dinâmica da API (que esse PR cobre)
@turicas agora a cara da listagem dos campos ficou assim:
Como dá pra ver no código, todos os ícones estão com o title correto