lappis-unb / salic-api

API aberta para o sistema SALIC. Tem por objetivo expor os dados de projetos da lei Rouanet
https://salic-api.readthedocs.org/pt/latest/
GNU General Public License v3.0
3 stars 1 forks source link

Graphql api #85

Closed marcosronaldo closed 6 years ago

marcosronaldo commented 6 years ago

A API em graphql está apresentando, a princípio, apenas uma nova forma de buscar os dados que já estão disponíveis na API rest, entretanto é mais fácil de ser evoluída com novas informações.

A paginação está feita de forma superficial utilizando a mesma lógica da API rest, aceitando apenas parâmetros de limit e offset em vez da utilização padrão do cursor, edges e nodes de graphQL.

Na API rest, o endpoint de detalhe projeto faz várias queries adicionais no banco, que são necessárias para obter certas informações. Esses campos que precisam de query adicional não estão na lista de projetos para que não entrasse no problema de query n+1. Diferente da API rest, a API em graphql pode buscar informacoes detalhadas de projetos mesmo buscando em lista, o que pode deixar a query MUITO lenta. Cabe ao usuário tomar cuidado com a utilização e obter essas informações apenas com uma quantidade muito pequena de projetos.

Quando em execução, a API em graphQL fica disponível /graphql. Entretanto, existe também o caminho /graphiql que contém uma interface gráfica para utilização da API, com um auxílio de autocomplete e documentação básica das informações que podem ser obtidas.

codecov-io commented 6 years ago

Codecov Report

Merging #85 into master will increase coverage by 0.86%. The diff coverage is 93.2%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #85      +/-   ##
==========================================
+ Coverage   87.85%   88.71%   +0.86%     
==========================================
  Files          50       54       +4     
  Lines        1844     2171     +327     
  Branches      164      167       +3     
==========================================
+ Hits         1620     1926     +306     
- Misses        169      186      +17     
- Partials       55       59       +4
Impacted Files Coverage Δ
salic_api/resources/projeto/projeto_list.py 100% <ø> (ø) :arrow_up:
salic_api/fixtures/sac.py 100% <ø> (ø) :arrow_up:
salic_api/salic_graphql/schema.py 100% <100%> (ø)
salic_api/resources/incentivador/query.py 70% <100%> (ø) :arrow_up:
salic_api/resources/preprojeto/pre_projeto_list.py 100% <100%> (ø) :arrow_up:
salic_api/app/urls.py 90.32% <100%> (+0.66%) :arrow_up:
salic_api/resources/projeto/projeto_detail.py 90.29% <100%> (+0.29%) :arrow_up:
salic_api/resources/incentivador/doacao.py 64.28% <100%> (ø) :arrow_up:
salic_api/resources/preprojeto/query.py 100% <100%> (ø) :arrow_up:
salic_api/resources/resource.py 77.45% <80%> (-2.45%) :arrow_down:
... and 11 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update de397c2...fa357a1. Read the comment docs.