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

https://github.com/kauefraga/crud-rest

🔮 A restful CRUD to put some effort
https://github.com/kauefraga/crud-rest

api crud-rest-api eslint express good-practices nodejs rest-api typescript vitest

Last synced: 3 months ago
JSON representation

🔮 A restful CRUD to put some effort

Awesome Lists containing this project

README

          

CRUDzão com Restful


GitHub top language
Repository size

GitHub last commit

GitHub LICENSE

🍃 Building an API Restful to use all good practices that i've known and keep learning 🍃

## ⬇️ How to download

```bash
git clone https://github.com/kauefraga/crud-rest.git
cd crud-rest
pnpm i
pnpm dev

# If you want to run tests
pnpm test
```

Or downloading with yarn? `yarn && yarn dev`


If you still prefer npm: `npm i && npm run dev`

## ✨ Features

- **Linters**: Eslint (config-airbnb-typescript)
- Huge tests coverage
- Code good practices
- Repositories pattern
- Implementation first and feature with dependencies after

## 💻 Technologies

- 🎟️ Generating unique identifiers with [CUID](https://www.npmjs.com/package/cuid)
- 💄 Code ruling with [Eslint](https://eslint.org)
- https://www.npmjs.com/package/eslint-config-airbnb-base
- https://www.npmjs.com/package/eslint-config-airbnb-typescript
- ⚗️ Running tests on [Vitest](https://vitest.dev)
> Implements Jest but with its own ESbuider (out of box typescript, esmodules...)
- 🧑‍💻 Developed on [Typescript](https://typescriptlang.org) + [TS-Node-Dev](https://npmjs.com/package/ts-node-dev)
> Improve dev experience by adding type safety

## 🗃️ Routes view (not implemented)

```bash
# Return a specific user -> user (!name = all users)
GET /users/{name} ou /users?name=...

# Return a specific user post -> post (!id = all user posts)
GET /users/name/posts/{id}

# Create a user -> user
POST /users/create

# Create a post -> post
POST /users/name/posts/create

# Update a post -> post (if i can, a diff)
PUT /users/name/posts/id

# Delete a user -> user/void
DELETE /users/name

# Delete a post -> post/void
DELETE /users/name/posts/id
```

## 📝 License

This project is licensed under the MIT License - See the [LICENSE](https://github.com/kauefraga/crud-rest/blob/main/LICENSE) for more information.

---


Built with love
Powered by coffee