Servidor web RESTful em C puro usando libmicrohttpd, uma biblioteca de servidor HTTP leve.
Para um exemplo detalhado, você pode se referir ao manual do libmicrohttpd.
Escolhi deliberadamente a linguagem de programação C para este projeto para me desafiar e revisitar minhas raízes de programação. C foi minha primeira linguagem e continua sendo minha favorita. Além disso, C encontra uso extensivo em sistemas embarcados e aplicações em tempo real, áreas que particularmente gosto de explorar como um entusiasta.
Meu objetivo principal era obter uma compreensão mais profunda de como as APIs funcionam sob o capô e como elas se comunicam com o sistema operacional. A linguagem C é excepcionalmente adequada para esse propósito devido à sua natureza de baixo nível e interação direta com hardware e recursos do sistema.
Neste projeto, estou usando um banco de dados Postgres para armazenar informações do usuário. O banco de dados é hospedado na nuvem no supabase, e o servidor se comunica com ele usando a biblioteca libpq.
- Docker instalado em sua máquina (Opcional)
- Compilador GCC instalado
- Utilitário Make instalado
-
Clone o Repositório
git clone
-
Navegue até o Diretório do Projeto
cd rest-api-C
-
Atualize as Credenciais do Banco de Dados
- Abra o arquivo
pg.h
no diretóriosrc
. - Atualize as variáveis com suas credenciais de banco de dados.
- Abra o arquivo
-
Executando o Servidor:
- Usando Docker (Linux):
./docker_run.sh
- Sem Docker (Linux):
./main_run.sh
- Usando Docker (Linux):
-
Acesse o servidor em
http://localhost:8080/
no seu navegador.
Essa API possui os seguintes endpoints:
GET /users
: Retorna todos os usuários cadastrados.GET /users/:id
: Retorna um usuário específico com base no ID fornecido.POST /users
: Adiciona um novo usuário ao banco de dados.PUT /users/:id
: Atualiza as informações de um usuário existente.DELETE /users/:id
: Remove um usuário do banco de dados.