1. @api_view(['GET', 'PUT', 'DELETE'])
    2. def snippet_detail(request, pk):
    3. """
    4. Retrieve, update or delete a code snippet.
    5. """
    6. try:
    7. snippet = Snippet.objects.get(pk=pk)
    8. if request.method == 'GET':
    9. serializer = SnippetSerializer(snippet)
    10. return Response(serializer.data)
    11. elif request.method == 'PUT':
    12. if serializer.is_valid():
    13. return Response(serializer.data)
    14. return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    15. elif request.method == 'DELETE':
    16. snippet.delete()