我对API有一个要求,不允许默认版本。所有客户端都需要显式指定任何资源的版本。我通过以下配置实现了这一点:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'oauth2_provider.ext.rest_framework.OAuth2Authentication',
'rest_framework.authentication.SessionAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.AcceptHeaderVersioning',
'ALLOWED_VERSIONS': ['2.0'],
'DEFAULT_RENDERER_CLASSES': (
'api.renderers.CustomJSONRenderer',
'rest_framework.renderers.BrowsableAPIRenderer',
),
}
这很好用,但是我失去了使用可浏览API渲染器的能力:
^{pr2}$我想指定,如果对可浏览API执行请求,默认版本应该是2.0。理由是,当尝试使用可浏览的API时,默认值应该是最新版本,但是当以编程方式使用API时,用户不应该因为忽略了指定其版本而暴露在破坏性的更改中。在
如何使我的API需要一个版本,但允许可浏览的API被免除?在
您可以更改默认版本控制类,以将版本分配给来自浏览器的请求。浏览器要求的媒体类型应该是
text/html
,而普通的API调用将要求application/json
。在相关问题 更多 >
编程相关推荐