Skip to content

Esta API fornece diversos endpoints para consultar palavras a partir de um arquivo JSON. É possível consultar se uma palavra existe, pesquisar por prefixo, infixo e sufixo, obter uma palavra aleatória (com ou sem tamanho específico) e realizar pesquisas avançadas utilizando múltiplos critérios.

Notifications You must be signed in to change notification settings

JoaoVidal1/API-Dicionario

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API Dicionário

Esta API fornece diversos endpoints para consultar palavras a partir de um arquivo JSON. É possível consultar se uma palavra existe, pesquisar por prefixo, infixo e sufixo, obter uma palavra aleatória (com ou sem tamanho específico) e realizar pesquisas avançadas utilizando múltiplos critérios.

Funcionalidades

  • Checagem de Palavra: Verifica se uma palavra informada existe.
  • Pesquisa por Prefixo: Retorna palavras que começam com o prefixo especificado.
  • Pesquisa por Infixo: Retorna palavras que contém um trecho (infixo) informado.
  • Pesquisa por Sufixo: Retorna palavras que terminam com o sufixo informado.
  • Palavra Aleatória: Retorna uma palavra aleatória, podendo ser filtrada por tamanho.
  • Pesquisa Avançada: Permite buscar palavras que satisfaçam, ao mesmo tempo, condições de prefixo, infixo, sufixo e comprimento mínimo e máximo.

Pré-requisitos

  • Node.js (versão 14 ou superior)
  • Arquivo dictionary.json contendo um array de palavras no diretório raiz

Instalação

  1. Clone o repositório
  2. Execute npm install para instalar as dependências
  3. Certifique-se de que o arquivo dictionary.json está presente no diretório raiz
  4. Execute node app.js para iniciar o servidor

Endpoints da API

Raiz (Bem-vindo):

GET /
Retorna uma mensagem de boas-vindas à API.

Resposta:

Welcome to the dictionary API

Verificar Palavra:

GET /word/:value
Exemplo: GET http://localhost:3000/word/abacate

Resposta de Sucesso (200):

["abacate"]

Resposta de Erro (404):

[]

Pesquisar por Prefixo:

GET /prefix/:value
Exemplo: GET http://localhost:3000/prefix/aba

Resposta de Sucesso (200):

["abacate", "abacaxi", "abandono"]

Resposta de Erro (404):

[]

Pesquisar por Infixo:

GET /infix/:value
Exemplo: GET http://localhost:3000/infix/cat

Resposta de Sucesso (200):

["abacate", "educativo", "indicativo"]

Resposta de Erro (404):

[]

Pesquisar por Sufixo:

GET /suffix/:value
Exemplo: GET http://localhost:3000/suffix/te

Resposta de Sucesso (200):

["abacate", "importante", "presente"]

Resposta de Erro (404):

[]

Palavra Aleatória:

GET /aleatorio/
Retorna uma palavra aleatória da lista completa.

Resposta de Sucesso (200):

"exemplo"

Palavra Aleatória com Tamanho Específico:

GET /aleatorio/:length
Exemplo: GET http://localhost:3000/aleatorio/7

Resposta de Sucesso (200):

"exemplo"

Resposta de Erro (404) - Nenhuma palavra encontrada:

{
  "error": "No words found with length 7"
}

Resposta de Erro (400) - Parâmetro inválido:

{
  "error": "Invalid Parameter: 'length' must be a positive integer."
}

Pesquisa Avançada:

GET /advanced

Aceita os seguintes query parameters:

  • pfx: Palavra deve começar com este prefixo (padrão "")
  • ifx: Palavra deve conter este infixo (padrão "")
  • sfx: Palavra deve terminar com este sufixo (padrão "")
  • min: Comprimento mínimo (padrão "0")
  • max: Comprimento máximo (padrão "99")

Exemplo:

GET http://localhost:3000/advanced?pfx=ab&ifx=ac&sfx=te&min=4&max=8

Resposta de Sucesso (200):

["abacate"]

Resposta de Erro (400) - Parâmetros inválidos:

{
  "error": "Parameters 'min' or 'max' are invalid."
}

Estrutura do Projeto

  • app.js: Arquivo principal que configura o servidor Express e os endpoints.
  • dictionary.json: Arquivo JSON contendo o array de palavras para a API.
  • package.json: Arquivo com as dependências e scripts do projeto.

Formato do Arquivo dictionary.json

O arquivo deve conter um array de strings com as palavras:

[
  "abacate",
  "abacaxi", 
  "abandono",
  "exemplo",
  "palavra"
]

Observações Importantes

  • Todas as consultas são convertidas para minúsculas automaticamente
  • A API retorna status 404 quando nenhuma palavra é encontrada nos endpoints de busca
  • O endpoint /aleatorio/ pode retornar undefined se o dicionário estiver vazio
  • Parâmetros de comprimento devem ser números inteiros positivos

Melhorias Futuras

  • Validações Adicionais: Adicionar validação para casos onde o array filtrado fique vazio, retornando mensagens mais descritivas.
  • Testes Automatizados: Criação de testes unitários para os endpoints.
  • Documentação da API: Utilizar ferramentas como Swagger para documentar a API e facilitar a integração.

Sinta-se à vontade para contribuir ou abrir issues para melhorias e bugs. Se tiver dúvidas ou sugestões, entre em contato!

Enjoy coding!

About

Esta API fornece diversos endpoints para consultar palavras a partir de um arquivo JSON. É possível consultar se uma palavra existe, pesquisar por prefixo, infixo e sufixo, obter uma palavra aleatória (com ou sem tamanho específico) e realizar pesquisas avançadas utilizando múltiplos critérios.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •