Create a REST API from any model you want thank your serializer. You can decide If you want an Authorization and if your datas are linked to an account.
Project description
[![CircleCI](https://circleci.com/gh/zephirdeadline/djangoAPI_rest_object.svg?style=svg)](https://circleci.com/gh/zephirdeadline/djangoAPI_rest_object)
DOC: https://drive.w4pity.fr/drive/Rest_object_documentation.pdf
## DEPENDANCE
- Django
- djangorestframework
- djoser
- djangorestframework-jwt
## INSTALLATION
in settings:
```
REQUIRE_API_AUTHORISATION = True
IS_GLOBAL_DATA = True
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),
}
```
Explication:
REQUIRE_API_AUTHORISATION = True If you want use an Authorization with your API
IS_GLOBAL_DATA = True If your data is NOT attached to a user
Warning: Both False are not compatible.
Add on your INSTALL_APP:
```
'rest_object',
'rest_framework',
'rest_framework_jwt',
'rest_framework.authtoken',
'djoser',
```
Add on your url path (identification, user management):
```
url(r'^auth/', include('djoser.urls')),
url(r'^auth/', include('djoser.urls.authtoken')),
url(r'^auth/', include('djoser.urls.jwt')),
```
Usage:
1- Create your model ('Car' for example)
2- Create your class serializer for this model ('CarSerializer' for example)
3- Create a view for this model like this:
```
def car(request, id_car=None):
return action(request, Car, CarSerializer, id_car)
```
4- Add 2 url for you model:
```
url(r'car/$', views.car, name='car'), # 'car'
url(r'car/(?P<id_car>\d+)$', views.car, name='carid'),
url(r'car/(?P<cursor>\d+)/(?P<amount>\d+)$', views.car, name='caramount'),
```
## API usage
Model example:
```
class Sms(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
text = models.TextField()
sender = models.CharField(max_length=64)
date = models.DateTimeField()
```
Add Header Token/jwt only if REQUIRE_API_AUTHORISATION = True
# Get a list of sms of a specific user:
> GET http://localhost:8000/api/sms/
HEADER needed:
> Authorization: Token e0ae370xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Content-Type: application/json
RESPONSE:
```
[
{
"id": 1,
"sender": "Jacque",
"date": "2008-04-10 11:47:58-05",
"text": "je suis un sms"
},
...
]
```
# Get a sms :
> GET http://localhost:8000/api/sms/{id}
HEADER needed:
> Authorization: Token e0ae370xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Content-Type: application/json
RESPONSE:
```
{
"id": 1,
"sender": "Jacque",
"date": "2008-04-10 11:47:58-05",
"text": "je suis un sms"
}
```
### Create sms for a specific user:
> POST http://localhost:8000/api/sms/
HEADER needed:
> Authorization: Token e0ae370xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Content-Type: application/json
BODY:
```
[
{
"sender": "Jacque",
"date": "2008-04-10 11:47:58-05",
"text": "je suis un sms"
},
...
]
```
RESPONSE:
```
{"status": "..."}
```
# Modify a sms :
> PUT http://localhost:8000/api/sms/{id}
id: id of sms
HEADER needed:
> Authorization: Token e0ae370xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Content-Type: application/json
BODY:
```
{
"sender": "Jacque",
"date": "2008-04-10 11:47:58-05",
"text": "je suis un sms"
},
```
RESPONSE:
```
{"status": "..."}
```
# Delete a sms of a specific user:
> DELETE http://localhost:8000/api/sms/{id}
id: id of sms to delete
HEADER needed:
> Authorization: Token e0ae370xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Content-Type: application/json
RESPONSE:
```
{"status": "..."}
```
## IDENTIFICATION
Use Djoser documentation to add the identification in your project:
[Documention link](https://djoser.readthedocs.io/en/stable/)
DOC: https://drive.w4pity.fr/drive/Rest_object_documentation.pdf
## DEPENDANCE
- Django
- djangorestframework
- djoser
- djangorestframework-jwt
## INSTALLATION
in settings:
```
REQUIRE_API_AUTHORISATION = True
IS_GLOBAL_DATA = True
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),
}
```
Explication:
REQUIRE_API_AUTHORISATION = True If you want use an Authorization with your API
IS_GLOBAL_DATA = True If your data is NOT attached to a user
Warning: Both False are not compatible.
Add on your INSTALL_APP:
```
'rest_object',
'rest_framework',
'rest_framework_jwt',
'rest_framework.authtoken',
'djoser',
```
Add on your url path (identification, user management):
```
url(r'^auth/', include('djoser.urls')),
url(r'^auth/', include('djoser.urls.authtoken')),
url(r'^auth/', include('djoser.urls.jwt')),
```
Usage:
1- Create your model ('Car' for example)
2- Create your class serializer for this model ('CarSerializer' for example)
3- Create a view for this model like this:
```
def car(request, id_car=None):
return action(request, Car, CarSerializer, id_car)
```
4- Add 2 url for you model:
```
url(r'car/$', views.car, name='car'), # 'car'
url(r'car/(?P<id_car>\d+)$', views.car, name='carid'),
url(r'car/(?P<cursor>\d+)/(?P<amount>\d+)$', views.car, name='caramount'),
```
## API usage
Model example:
```
class Sms(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
text = models.TextField()
sender = models.CharField(max_length=64)
date = models.DateTimeField()
```
Add Header Token/jwt only if REQUIRE_API_AUTHORISATION = True
# Get a list of sms of a specific user:
> GET http://localhost:8000/api/sms/
HEADER needed:
> Authorization: Token e0ae370xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Content-Type: application/json
RESPONSE:
```
[
{
"id": 1,
"sender": "Jacque",
"date": "2008-04-10 11:47:58-05",
"text": "je suis un sms"
},
...
]
```
# Get a sms :
> GET http://localhost:8000/api/sms/{id}
HEADER needed:
> Authorization: Token e0ae370xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Content-Type: application/json
RESPONSE:
```
{
"id": 1,
"sender": "Jacque",
"date": "2008-04-10 11:47:58-05",
"text": "je suis un sms"
}
```
### Create sms for a specific user:
> POST http://localhost:8000/api/sms/
HEADER needed:
> Authorization: Token e0ae370xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Content-Type: application/json
BODY:
```
[
{
"sender": "Jacque",
"date": "2008-04-10 11:47:58-05",
"text": "je suis un sms"
},
...
]
```
RESPONSE:
```
{"status": "..."}
```
# Modify a sms :
> PUT http://localhost:8000/api/sms/{id}
id: id of sms
HEADER needed:
> Authorization: Token e0ae370xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Content-Type: application/json
BODY:
```
{
"sender": "Jacque",
"date": "2008-04-10 11:47:58-05",
"text": "je suis un sms"
},
```
RESPONSE:
```
{"status": "..."}
```
# Delete a sms of a specific user:
> DELETE http://localhost:8000/api/sms/{id}
id: id of sms to delete
HEADER needed:
> Authorization: Token e0ae370xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Content-Type: application/json
RESPONSE:
```
{"status": "..."}
```
## IDENTIFICATION
Use Djoser documentation to add the identification in your project:
[Documention link](https://djoser.readthedocs.io/en/stable/)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
rest_object-2.1.tar.gz
(9.4 kB
view details)
File details
Details for the file rest_object-2.1.tar.gz
.
File metadata
- Download URL: rest_object-2.1.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ee9aab7cd0cca57525d0af48dd2a7b4281c9e2de611e3874daeedc80af42027 |
|
MD5 | 2db324a16ec95a864a044949f649e70d |
|
BLAKE2b-256 | 186f728bbe03fdfcf78bf56d50f6394d4e60dd8befbb92097b3b11f897113098 |