0% found this document useful (0 votes)
30 views2 pages

REST API CRUD Operations Overview

The document outlines methods for handling CRUD operations in a RESTful API, including listing, retrieving, creating, updating, partially updating, and deleting data. It also describes helper methods for obtaining the queryset, serializer, and pagination. Each method is defined with its purpose and implementation details for managing data effectively.

Uploaded by

arzydewanto
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views2 pages

REST API CRUD Operations Overview

The document outlines methods for handling CRUD operations in a RESTful API, including listing, retrieving, creating, updating, partially updating, and deleting data. It also describes helper methods for obtaining the queryset, serializer, and pagination. Each method is defined with its purpose and implementation details for managing data effectively.

Uploaded by

arzydewanto
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

1.

List() - GET semua data


def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response([Link])
serializer = self.get_serializer(queryset, many=True)
return Response([Link])

2. retrieve() - GET by ID
def retrieve(self, request, *args, **kwargs):
instance = self.get_object()
serializer = self.get_serializer(instance)
return Response([Link])

3. create() - POST data baru


def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=[Link])
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
headers = self.get_success_headers([Link])
return Response([Link], status=status.HTTP_201_CREATED, headers=headers)

4. update() - PUT (ubah seluruh kolom)


def update(self, request, *args, **kwargs):
partial = [Link]('partial', False)
instance = self.get_object()
serializer = self.get_serializer(instance, data=[Link], partial=partial)
serializer.is_valid(raise_exception=True)
self.perform_update(serializer)
return Response([Link])

5. partial_update() - PATCH (ubah sebagian kolom)


def partial_update(self, request, *args, **kwargs):
kwargs['partial'] = True
return [Link](request, *args, **kwargs)

6. destroy() - DELETE data


def destroy(self, request, *args, **kwargs):
instance = self.get_object()
self.perform_destroy(instance)
return Response(status=status.HTTP_204_NO_CONTENT)

7. get_queryset()
def get_queryset(self):
assert [Link] is not None, (
"'%s' should either include a `queryset` attribute, "
"or override the `get_queryset()` method." % self.__class__.__name__
)
return [Link]
8. get_serializer()
def get_serializer(self, *args, **kwargs):
serializer_class = self.get_serializer_class()
[Link]('context', self.get_serializer_context())
return serializer_class(*args, **kwargs)

9. paginate_queryset()
def paginate_queryset(self, queryset):
"""
Return a single page of results, or `None` if pagination is disabled.
"""
if [Link] is None:
return None
return [Link].paginate_queryset(queryset, [Link], view=self)

You might also like