open-index/open-npm huggingface dataset:
npm package: @iscarloscoder/simple-rest-builder
Description: Framework básico de REST com decoradores em TypeScript
Author: Seu Nome
Latest version: 1.0.1

# @iscarloscoder/simple-rest-builder

Um simples framework para criar APIs REST com decoradores em TypeScript.

## Introdução

`@iscarloscoder/simple-rest-builder` é um framework leve e fácil de usar para criar APIs RESTful com TypeScript. Usando decoradores, ele facilita a definição de rotas e a manipulação de solicitações e respostas HTTP. Ideal para quem busca simplicidade e produtividade ao construir APIs rápidas e eficientes.

## Instalação

Usando o bun:

```bash
bun add @iscarloscoder/simple-rest-builder
```

Usando o npm:

```bash
npm install @iscarloscoder/simple-rest-builder
```

Usando o yarn:

```bash
yarn add @iscarloscoder/simple-rest-builder
```

Usando o pnpm:

```bash
pnpm add @iscarloscoder/simple-rest-builder
```

## Como usar

Para começar, você precisará importar o framework e usar os decoradores para definir seus endpoints.

```typescript
import * as rest from "@iscarloscoder/simple-rest-builder";
```

Criaremos uma classe para representar nosso app.

```typescript
@rest.RestBuilder("3000") // Porta do servidor
class UserController {}
```

Depois de definir o app, você pode usar os decoradores para definir os endpoints da sua API usando os métodos da classe.

```typescript
@rest.RestBuilder("3000")
class UserController {
  @rest.Get("/")
  async getUsers() {
    return [{ id: 1, name: "John Doe" }];
  }

  @rest.Post("/")
  async createUser(@rest.Body() user: any) {
    return { ...user, id: 123 };
  }

  @rest.Put("/:id")
  async updateUser(@rest.Param("id") id: string, @rest.Body() user: any) {
    return { id, ...user };
  }

  @rest.Delete("/:id")
  async deleteUser(@rest.Param("id") id: string) {
    return { id, message: "User deleted" };
  }
}
```

## Decoradores

### `@RestBuilder(port)`

Define a aplicação e a porta do servidor.

### `@Get(route)`

Define um endpoint para requisições HTTP GET.

### `@Post(route)`

Define um endpoint para requisições HTTP POST.

### `@Put(route)`

Define um endpoint para requisições HTTP PUT.

### `@Delete(route)`

Define um endpoint para requisições HTTP DELETE.

### `@Param(name)`

Extrai um parâmetro da URL.

### `@Body()`

Extrai o corpo da requisição.

## Contribuindo

Contribuições são bem-vindas! Para contribuir com o `@iscarloscoder/simple-rest-builder`, siga os seguintes passos:

1. Faça um fork do repositório.
2. Crie uma branch para sua feature ou correção (ex: `git checkout -b minha-feature`).
3. Faça suas alterações e commit com mensagens claras (ex: `git commit -m 'Adiciona nova feature'`).
4. Envie sua branch para o seu fork (`git push origin minha-feature`).
5. Abra um pull request para o branch principal do repositório original.

## Licença

`@iscarloscoder/simple-rest-builder` é licenciado sob a MIT License. Veja o arquivo [LICENSE](./LICENSE) para mais detalhes.