Returning URLs - Django REST framework

返回URL-Django REST框架

reverse.py

返回URL

将REST体系结构风格与其他基于网络的风格区分开来的中心特性是它强调组件之间的统一接口。

罗伊·菲尔丁体系结构风格与基于网络的软件体系结构设计

通常,最好从WebAPI返回绝对URI,例如http://example.com/foobar,而不是返回相对URI,例如/foobar.

这样做的好处是:

  • 更明确一些。
  • 它为您的API客户端留下了更少的工作。
  • 当字符串出现在没有本机URI类型的JSON等表示中时,对字符串的含义没有任何含糊之处。
  • 它使得使用超链接进行标记HTML表示这样的事情变得很容易。

REST框架提供了两个实用函数,使从WebAPI返回绝对URI更加简单。

您不需要使用它们,但是如果您使用它们,那么自描述API将能够自动为您超链接其输出,从而使浏览API更加容易。

倒转

签署: reverse(viewname, *args, **kwargs)

有相同的行为django.urls.reverse,除非它返回一个完全限定的URL,使用请求来确定主机和端口。

你应该将请求包含为关键字参数,例如:

from rest_framework.reverse import reverse
from rest_framework.views import APIView
from django.utils.timezone import now

class APIRootView(APIView):
    def get(self, request):
        year = now().year
        data = {
            ...
            'year-summary-url': reverse('year-summary', args=[year], request=request)
        }
        return Response(data)

反向懒惰

签署: reverse_lazy(viewname, *args, **kwargs)

有相同的行为django.urls.reverse_lazy,除非它返回一个完全限定的URL,使用请求来确定主机和端口。

就像倒转函数,你应该将请求包含为关键字参数,例如:

api_root = reverse_lazy('api-root', request=request)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QMQ2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值