我正在使用DRF(Django Rest Framework)创建RESTAPI。 API只是接收用户的twitter句柄并返回其twitter数据。
在这里,我在这里不使用模型,因为它不是必需的。
我应该在这里使用序列化程序吗?如果可以,为什么?现在,我无需使用序列化程序即可返回数据。 此外,“我的API”无法通过网络浏览。我应该如何使其可通过网络浏览:这是DRF的最佳功能之一。
编辑:1
我在视图中使用函数。
@api_view(['GET'])
@csrf_exempt
def getdetails(request):
call the twitter api
receive the data
return HttpResponse(JsonResponse( {'data': {'twitter_id':id,'tweets':count,'Followers':followers,'following':count_follow}}))
在浏览器中,我只看到这样的JSON数据。
{“数据”:{“ twitter_id”:352525,“ tweets”:121,“关注者”:1008,“关注者”:281}}
答案 0 :(得分:0)
您可以将Serializer
用于结果
class SampleSerializer(serializers.Serializer):
field1 = serializers.CharField()
field2 = serializers.IntegerField()
# ... other fields
my_data = {
"field1": "my sample",
"field2": 123456
}
my_serializer = SampleSerializer(data=my_data)
my_serializer.is_valid(True)
data = my_serializer.data
您将在data
变量中获得序列化的数据(可以直接使用my_serializer.data
)
我应该在这里使用序列化器吗?
由您决定,因为如果您希望在不对Twitter API进行任何修改的情况下显示响应JSON,则可以不使用DRF序列化程序。而且,如果您希望对JSON进行某种格式设置,我的回答将为您提供帮助
我的API无法通过网络浏览。我应该如何使其可通过网络浏览?
也许您遵循错误的程序。无论如何,如果没有看到您的代码片段,我们就不能再对此多说了
from rest_framework.response import Response
@api_view(['GET'])
@csrf_exempt
def getdetails(request):
call the twitter api
twitter_api = get_response_from_twitter() # Json response
return Response(data=twitter_api)