首页 > 解决方案 > 将 Django 视图转换为休息服务

问题描述

我有一个很久以前创建的应用程序,现在客户希望在不破坏现有功能的情况下将其一些视图公开为 API,以便他们可以使用 REST 工具直接使用 API 来查看报告。

有没有更简单的方法,我可以将我的函数转换为 REST 视图。

PS - 我在这里缩短了代码以保持问题简单,但事实上,它在实际应用程序中非常复杂。

例如。网址:-

    `path('/users', views.show_user_details, name='users'),`   

看法

 def show_user_details(request, user_id):
    users = User.objects.all()
    return render(request, "Users.html", {"users":users})

在 REST 视图中,我希望它转换其输入和输出,以便可以使用相同的 url(或稍加修改)访问它,而无需太多更新现有视图。

  `path('rest/users', views.show_user_details, name='users'),`   #-- I am ok to add new url like this, but without much change in  existing view .

def show_user_details(request, user_id):
    users = User.objects.all()
    return JsonResponse({"users":users})

标签: pythondjango

解决方案


由于正常的网站访问仍然是一个GET请求并且GET只是您通常的 REST 操作之一,因此您可能需要准备自己的独立 API 端点。看看django-rest-framework,你可能会对这项任务感到宾至如归。


推荐阅读