okfn-brasil / querido-diario-api

This is Querido Diário's API. It provides everything the frontend does and even more!
https://queridodiario.ok.org.br/api/docs
MIT License
48 stars 32 forks source link

Adiciona novas modalidades de busca | Add new query modes #52

Closed ogecece closed 2 years ago

ogecece commented 2 years ago

Solves: #50

ogecece commented 2 years ago

@jvanz fiz uns ajustes considerando o que você falou.

A sintaxe anterior seria a de query string (que é portada do Apache Lucene), que é bem poderosa mas permitiria acesso a outros campos, que realmente seria indesejado. Mas também existe a simple query string que tem menos funcionalidades (sem regex, por exemplo), mas o usuário final fica limitado aos campos e operadores que permitirmos. Acredito que assim possamos seguir?

Acabei encontrando isso hoje e achei muito legal. Estava tentando sanitizar a query como você tinha falado, mas no fim das contas acabei tendo muito trabalho tentando não limitar as funcionalidades originais da sintaxe.

Se tudo bem assim, estou pensando em fazer os testes de integração separando resultados esperados como resposta para cada tipo de operador utilizado já que com essa nova sintaxe fica impossível fazer algo do tipo:

        if keywords:
            for keyword in keywords:
                data = [d for d in data if keyword in d["source_text"]]

(essa é a maneira que estamos selecionando atualmente quais resultados esperamos ser retornados com uma busca que tenha palavras-chave)

ogecece commented 2 years ago

@jvanz finalizei o PR e já vou precisar mesclar. Todos os testes estão feitos.

Mas o uso da sintaxe de simple query string está explicado apenas nesse link que também coloquei no comentário anterior. E não na documentação swagger.

Vamos precisar documentar como utilizar tanto na API e no frontend. Vou abrir issues nos dois repos para isso.