Django-restframework31 Returning URLs

REST架构风格与其他基于网络的风格的主要特征是它强调组件之间的统一接口。

一、Returning URLs

1.简介

一般,从Web API返回绝对 URI更好,例如http://example.com/foobar,而不是返回相对uri,例如/foobar。
优点:
- 更明确
- 减轻 API客户端负担
- 当在诸如JSON这样的表示中没有原生URI类型时,字符串的含义就没有什么不明确的地方了。
- 它使得使用超链接标记HTML表示变得很容易。
REST框架提供了两个实用的功能使返回绝对URI更简单。不是必须要求这么做,但是API自我描述时,会自动创建一个超链接,使浏览API更容易。

2. reverse

Signature: reverse(viewname, *args, **kwargs)

与django.urls.reverse作用相似,除非它返回一个完全限定的URL,使用请求来确定主机和端口。
应该将函数关键字参数包含在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)

3. reverse_lazy

Signature: 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
发出的红包

打赏作者

豆豆orz

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

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

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

打赏作者

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

抵扣说明:

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

余额充值