https://github.com/beenotung/live-data-server
Restful CRUD API development server for frontend projects to demo. Similar to json-server but backed by sqlite3.
https://github.com/beenotung/live-data-server
crud development-server file-upload json-server key-value-store sqlite3
Last synced: 10 months ago
JSON representation
Restful CRUD API development server for frontend projects to demo. Similar to json-server but backed by sqlite3.
- Host: GitHub
- URL: https://github.com/beenotung/live-data-server
- Owner: beenotung
- License: bsd-2-clause
- Created: 2022-01-30T15:39:47.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2023-08-07T14:39:22.000Z (over 2 years ago)
- Last Synced: 2025-02-01T12:16:52.266Z (11 months ago)
- Topics: crud, development-server, file-upload, json-server, key-value-store, sqlite3
- Language: TypeScript
- Homepage:
- Size: 12.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# live-data-server
Restful CRUD API development server for frontend projects to demo.
Similar to [json-server](https://github.com/typicode/json-server) but backed by sqlite3.
[](https://www.npmjs.com/package/live-data-server)
## Features
- No need to install (npx executable)
- RESTful API
- Persisted by sqlite3
- CRUD table objects
- CRUD key-value pairs
- File Upload
- Search by any field
- Search with range / logics (TODO)
## Usage
```bash
npx live-data-server [port]
```
The port number can be set with `PORT` environment variable as well, otherwise it will use any available port.
Usage Example:
```bash
> npx live-data-server 8600
listening on http://localhost:8600
listening on http://127.0.0.1:8600 (lo)
listening on http://192.168.80.105:8600 (wlp3s0)
```
## APIs
### Files API
| Method | Path | Field |
| ------ | ------ | ----- |
| POST | /files | file |
### Collection API
| Method | Path | Description |
| ------ | ---------------------- | ------------------ |
| GET | /collection/:table | get all / search\* |
| GET | /collection/:table/:id | get by id |
| POST | /collection/:table | create |
| PATCH | /collection/:table/:id | update by id |
| DELETE | /collection/:table/:id | delete by id |
Supported Search Example:
```
GET /collection/user?role=admin&status=active
```
To-be Supported Search Example:
```
GET /collection/house?rent=below(5000)&area=at_least(200)
GET /collection/product?price=between(10,20)
GET /collection/user?role=not(admin)
GET /collection/user?role=any(shop,client)
```
### Dictionary (key-value) API
| Method | Path | Description |
| ------ | ----------- | -------------- |
| POST | /dict/:name | init by name |
| GET | /dict/:name | get by name |
| PATCH | /dict/:name | update by name |
| DELETE | /dict/:name | delete by name |
## Todo
- support realtime update notices
- support pub/sub channel
## License
This project is licensed with [BSD-2-Clause](./LICENSE)
This is free, libre, and open-source software. It comes down to four essential freedoms [[ref]](https://seirdy.one/2021/01/27/whatsapp-and-the-domestication-of-users.html#fnref:2):
- The freedom to run the program as you wish, for any purpose
- The freedom to study how the program works, and change it so it does your computing as you wish
- The freedom to redistribute copies so you can help others
- The freedom to distribute copies of your modified versions to others