Skip to content

zephirdeadline/djangoAPI_rest_object

Repository files navigation

CircleCI Coverage Status

DOC: https://drive.w4pity.fr/drive/Rest_object_documentation.pdf

DEPENDANCE

  • Django
  • djangorestframework
  • djoser
  • djangorestframework-jwt

INSTALLATION

in settings: Configure REST_FRAMEWORK for the authentification you want


REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.TokenAuthentication',
    ),
}

Tips: You can also you JWT

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, cursor=None, amount=None):
    return action(request, Car, CarSerializer, id_car, cursor, amount, is_restricted=False, linked_to_user=False)

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'),

Tips: An Activity example is avaible in the source code

API usage

Tips: Token can be replaced by JWT

Model example:

User is a ForeignKey, so is_restricted ans linked_to_user need to be set as True

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 you need it

QUERY

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

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"
	}

POST

POST http://localhost:8000/api/sms/

HEADER needed:

Authorization: Token e0ae370xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Content-Type: application/json

BODY:

[
    saved: [
        {
            "sender": "Jacque",
            "date": "2008-04-10 11:47:58-05",
            "text": "je suis un sms"
        },
        ...
    ],
    fails: [
    ...
    ]
	
]

RESPONSE:

	{
	    "id": 1,
		"sender": "Jacque",
		"date": "2008-04-10 11:47:58-05",
		"text": "je suis un sms"
	}

PUT

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:


	{
	    "id": 5,
		"sender": "Jacque",
		"date": "2008-04-10 11:47:58-05",
		"text": "je suis un sms"
	}

Delete

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages