Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pedrofnseca/rest-api-c

đź‘˝ A "simple" restful api make in pure C
https://github.com/pedrofnseca/rest-api-c

c docker docker-container http-server libmicrohttpd make nginx nginx-server postgresql rest-api

Last synced: 5 days ago
JSON representation

đź‘˝ A "simple" restful api make in pure C

Awesome Lists containing this project

README

        

# Uma Simples API em C puro



English Version

|

Artigo



Servidor web RESTful em C puro usando [libmicrohttpd](https://www.gnu.org/software/libmicrohttpd/), uma biblioteca de servidor HTTP leve.

Para um exemplo detalhado, vocĂŞ pode se referir ao [manual do libmicrohttpd](https://www.gnu.org/software/libmicrohttpd/manual/libmicrohttpd.html#Simple-HTTP-server-example).

## Por que Escolher C para Este Projeto?

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.

## Banco de Dados Postgres

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](https://supabase.com/), e o servidor se comunica com ele usando a biblioteca [libpq](https://www.postgresql.org/docs/9.1/libpq.html).

## Como Executar o Servidor

### Pré-requisitos:
- [x] Docker instalado em sua máquina (Opcional)
- [x] Compilador GCC instalado
- [x] Utilitário Make instalado

### Passo a Passo:

1. Clone o RepositĂłrio
```bash
git clone
```
2. Navegue até o Diretório do Projeto
```bash
cd rest-api-C
```
3. Atualize as Credenciais do Banco de Dados
- Abra o arquivo `pg.h` no diretĂłrio `src`.
- Atualize as variáveis com suas credenciais de banco de dados.

4. Executando o Servidor:
- Usando Docker (Linux):
```bash
./docker_run.sh
```
- Sem Docker (Linux):
```bash
./main_run.sh
```
5. Acesse o servidor em `http://localhost:8080/` no seu navegador.

## Endpoints

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.