Skip to content

eliarisalvares/42labs_42sp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Processo de Seleção para o 42Labs

API

Uma API de tipo RESTful que usa restrições HTTP para extrair dados dados da BoredAPI, uma API que faz sugestões divertidas de atividades aleatórias para quando se está entediado. O retorno da requisição do tipo "GET" está no formato JSON e tem status HTTP 200 OK. Todos os logs com data e status HTTP são automaticamente armazenados no arquivo "log.txt".

Como usar

COMPILAÇÃO:

EXECUÇÃO

Comece a execução digitando './activity'. Se a seguinte mensagem for exibida

"Framework initialized - PORT 8080. Go to your browser and type 'localhost:8080'":

Vá até o seu navegador e acesse localhost:8080. O retorno será exibido no terminal e um arquivo de tipo .txt será criado na pasta "API". A cada vez que a página for acessada/recarregada, uma nova lista de atividades será exibida no terminal e armazenada no arquivo "log.txt".

⚠️ A maioria dos erros na inicialização do Framework ocorrem quando já existe um terminal executando a "./activity".

Aplicação CLI

A aplicação CLI exibe no terminal: hora da requisição, status HTTP, corpo do retorno e número total de requisições "GET".

Como usar

COMPILAÇÃO:

⚠️ É necessário que a API esteja em execução ou tenha sido executada, ou seja, que o arquivo "log.txt" exista para que os logs sejam exibidos. Caso contrário, uma mensagem de erro será retornada.

EXECUÇÃO

Comece a execução digitando './cli'. Então, para que os logs sejam exibidos, digite "logs". Para sair, digite "close".

🧰 Ferramentas utilizadas

🔸 ULFIUS

Ulfius é uma framework de REST API escrita em C. É possível utilizá-la para criar serviços web de maneira fácil. Neste projeto, ela foi utilizada para permitir a conexão localhost na porta 8080. Usando as funções da biblioteca ulfius em conjunto com a libcurl foi possível iniciar o framework, realizar requisição de tipo HTTP GET e retornar o corpo da resposta da requisição.

🔸 LIBCURL

A libcurl é uma biblioteca de transferência de URL do lado do cliente para aplicações escritas em C gratuita e fácil de usar. Ela foi escolhida sobre a Mangoose pela facilidade de se encontrar informações e tutoriais sobre seu uso para APIs em C. A libcurl permite receber e processar com facilidade o conteúdo do corpo e do header da requisição através da função curl_easy_setopt().

🔸 GET_NEXT_LINE

O get_next_line foi meu segundo projeto do cursus da 42. Se mostrou interessante para a aplicação CLI. O board da função original pode ser acessado através do seguinte link: https://miro.com/app/board/o9J_ly1mdHE=/.

🔸 GITHUB PROJECTS

GitHub Projects é uma ferramenta de organização que permite gerenciar projetos e atribuir tarefas.

🔸 DOCKER

Docker é uma plataforma de conteinerização de código aberto. Permite aos programadores empacotar aplicações em contêineres - componentes executáveis padronizados que combinam o código fonte da aplicação com as bibliotecas do sistema operacional ( OS ) e as dependências necessárias para executar esse código em qualquer ambiente.

Para usar o Docker é necessário digitar e rodar o comando 'docker build . -t image ; docker run -it image' em cada uma das pastas das aplicações ("./42labs-selection-process-v2-eliarisalvares/API" e "./42labs-selection-process-v2-eliarisalvares/CLI").

🔸 GITHUB ACTIONS

GitHub Actions é uma plataforma de integração e entrega contínua (CI/CD) que permite automatizar o pipeline de construção, teste e implementação. Pode criar fluxos de trabalho que constroem e testam cada pull request para o repositório, ou fazer o deploy de merged pull requests.

🔸 DOXYGEN

Doxygen é uma excelente ferramenta para documentação de funções. Usa uma formatação específica, para, através de uma extensão, identificar e extrair informações passadas por comentários. A partir disso, permite a visualização da documentação das funções do usuário em qualquer parte do código. Nesse projeto, o Doxygen é sempre usado nos arquivos ".h".

🔴 Problemas

A intenção inicial era que o retorno da "Bored API" fosse exibido em "https://localhost:8080". Acredito que seria possível através da formação de um banco de dados em conjunto com a função "ulfius_set_string_body_response()" da biblioteca Ulfius. Não houve tempo hábil para a implementação de um banco de dados, o que gerou o inconveniente de que a resposta é gerada através do navegador, mas exibida no terminal e armazenada no arquivo "log.txt".

💾 Referências

WSL

APIs e REST APIs

BORED API

PUBLIC APIS

DOCKERFILE

LIBCURL

ULFIUS

GITHUB ACTIONS

ARQUIVO LOG

About

Processo de Seleção para o 42Labs.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published