Django-restframework30 Format suffixes(后缀格式)

本文详细介绍了Django REST framework中的格式后缀,包括URL上的文件扩展名模式,如何使用`format_suffix_patterns`设置后缀,以及查询参数和请求头中设置格式的方法。此外,还讨论了关于是否使用格式后缀的RESTful争议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Format suffixes

Web api的一种常见模式是在url上使用文件名扩展,以为给定的媒体类型提供端点。例如,http://example.com/api/users.json的JSON
为您的API在URLconf的每个单独条目中添加格式-后缀模式是容易出错和不干的,因此REST框架提供了将这些模式添加到您的URLconf中的快捷方式。
1. format_suffix_patterns

# 将所有urlpatterns,都加上一个后缀
Signature: format_suffix_patterns(urlpatterns, suffix_required=False, allowed=None)
  • urlpatterns: 设置的urlpatterns列表
  • suffix_required:可选,表示url中的后缀应该是可选的还是必需的,默认为False。
  • allowed:可选,可选的后缀元组或者列表
from rest_framework.urlpatterns import format_suffix_patterns
from blog import views

urlpatterns = [
    url(r'^/$', views.apt_root),
    url(r'^comments/$', views.comment_list),
    url(r'^comments/(?P<pk>[0-9]+)/$', views.comment_detail)
]

urlpatterns = format_suffix_patterns(urlpatterns, allowed=['json', 'html'])
  1. 使用i18n_patterns
    确保i18n_patterns是在最后使用的
url patterns = [
    …
]

urlpatterns = i18n_patterns(
    format_suffix_patterns(urlpatterns, allowed=['json', 'html'])
)

二、查询参数格式

格式后缀的另一种选择是在查询参数中包含所请求的格式。REST框架在默认情况下提供了这个选项,并且在可浏览的API中使用它在不同的可用表示之间切换

http://example.com/organizations/?format=csv.

format可以通过URL_FORMAT_OVERRIDE修改,设置为None就会禁用此功能。

三、请求头和格式后缀

在一些Web社区中,似乎有一种观点认为.format suffixes不是一种RESTful模式,而HTTP Accept标头应该总是被使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

豆豆orz

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

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

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

打赏作者

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

抵扣说明:

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

余额充值