The easiest way to add a Django and DRF powered API to any project
Project description
### Bookrest - The easiest way to add rest API to an arbitrary DB

Bookrest allows you to add an API (and browsable htmls) to arbitrary databases -- well almost arbitrary, the tables must have PKs.
The databases do not need to be managed by Django.
#### Installation and usage
```bash
pip install bookrest
```
Then in your `settings.py`,
```python
INSTALLED_APPS = [
# ...
"rest_framework",
"bookrest",
]
```
Add a key to your `settings.DATABASES` named `bookrest`, and point it to the DB you want to expose as an API. Keep your `default` db as is, you can use it for user management and other Django apps.
```python
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": os.path.join(BASE_DIR, "db.sqlite3"),
},
"bookrest": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": os.path.join(BASE_DIR, "data/sample.sqlite3"),
},
}
```
Connect your urls to `bookrest.urls`
```python
urlpatterns = [
# ...
path("api/", include("bookrest.urls"))
]
```
🚀 Boom! You are in business. All your tables will have a full read/write API

### Todo
- [X] Test with Sqlite
- [ ] Publish on Pypi
- [ ] Test with Postgres
- [ ] Test with Mysql
- [ ] Add setting to enable a read only API
- [ ] Enable circleci
- [ ] Silently drop tables with no PKs rather than failing (bad idea??)

Bookrest allows you to add an API (and browsable htmls) to arbitrary databases -- well almost arbitrary, the tables must have PKs.
The databases do not need to be managed by Django.
#### Installation and usage
```bash
pip install bookrest
```
Then in your `settings.py`,
```python
INSTALLED_APPS = [
# ...
"rest_framework",
"bookrest",
]
```
Add a key to your `settings.DATABASES` named `bookrest`, and point it to the DB you want to expose as an API. Keep your `default` db as is, you can use it for user management and other Django apps.
```python
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": os.path.join(BASE_DIR, "db.sqlite3"),
},
"bookrest": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": os.path.join(BASE_DIR, "data/sample.sqlite3"),
},
}
```
Connect your urls to `bookrest.urls`
```python
urlpatterns = [
# ...
path("api/", include("bookrest.urls"))
]
```
🚀 Boom! You are in business. All your tables will have a full read/write API

### Todo
- [X] Test with Sqlite
- [ ] Publish on Pypi
- [ ] Test with Postgres
- [ ] Test with Mysql
- [ ] Add setting to enable a read only API
- [ ] Enable circleci
- [ ] Silently drop tables with no PKs rather than failing (bad idea??)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bookrest-0.1.2.tar.gz
(4.0 kB
view details)
File details
Details for the file bookrest-0.1.2.tar.gz.
File metadata
- Download URL: bookrest-0.1.2.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b47e78485badecaaf96a22c4e7721db06bb98751d367117e17fe7c3b471719c6
|
|
| MD5 |
8d1b0d2086116a768dc7992466392133
|
|
| BLAKE2b-256 |
a48a48b8246621a1429078a808db2d89dff6c6231595349d2b31718741ce36c7
|