Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/premieroctet/next-crud
Full-featured CRUD routes for Next.js
https://github.com/premieroctet/next-crud
crud hacktoberfest nextjs prisma react
Last synced: 4 days ago
JSON representation
Full-featured CRUD routes for Next.js
- Host: GitHub
- URL: https://github.com/premieroctet/next-crud
- Owner: premieroctet
- License: mit
- Created: 2020-11-23T08:41:28.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-07-22T12:29:46.000Z (5 months ago)
- Last Synced: 2024-12-14T04:03:26.193Z (11 days ago)
- Topics: crud, hacktoberfest, nextjs, prisma, react
- Language: TypeScript
- Homepage: https://next-crud.js.org
- Size: 1.12 MB
- Stars: 260
- Watchers: 7
- Forks: 33
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Next Crud
[![NPM Version](https://img.shields.io/npm/v/@premieroctet/next-crud/latest)](https://www.npmjs.com/package/@premieroctet/next-crud)
[![NPM License](https://img.shields.io/npm/l/all-contributors.svg?style=flat)](https://github.com/premieroctet/next-crud/blob/master/LICENSE)
[![Github Actions](https://github.com/premieroctet/next-crud/workflows/next-crud/badge.svg)](https://github.com/premieroctet/next-crud/actions?query=workflow%3Anext-crud)`next-crud` is a helper library that creates CRUD API routes with one simple function based on a Prisma model for Next.js.
**Starting from version 3 of the lib, we only support Prisma v5 and above. Please install version 2 of the lib if you are using Prisma v4 or older.**
# Documentation
The documentation is available [here](https://next-crud.js.org/)
# Overview
`yarn add @premieroctet/next-crud`
Given the following Prisma schema:
```sql
model User {
id Int @id @default(autoincrement())
name String?
email String?
}
```Create the file `/pages/api/[...nextcrud].ts.` with:
```javascript
import NextCrud, { PrismaAdapter } from '@premieroctet/next-crud'
import { NextApiRequest, NextApiResponse } from 'next'const handler = async (req: NextApiRequest, res: NextApiResponse) => {
const nextCrudHandler = await NextCrud({
adapter: new PrismaAdapter({
prismaClient: myPrismaClientInstance,
}),
})return nextCrudHandler(req, res)
}export default handler
```And get your full featured CRUD routes!
| | Endpoint | Description |
| ------------ | ----------------------- | ------------------------- |
| List | GET `/api/users` | Get all the users |
| Get | GET `/api/users/[id]` | Get one user |
| Add | POST `/api/users` | Create one user |
| Edit | PUT `/api/users/[id]` | Update one user |
| Partial edit | PATCH `/api/users/[id]` | Update one user (partial) |
| Delete | DELETE`/api/users/[id]` | Delete one user |# Example
[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?style=flat-square&logo=codesandbox)](https://codesandbox.io/s/next-crud-demo-qj3gn)
# Contributing
You can run the example project to test your modifications. Make sure to run `yarn watch` in the root folder.
# Sponsors
This project is being developed by [Premier Octet](https://www.premieroctet.com), a Web and mobile agency specializing in React and React Native developments.