我想在使用 Django Rest Framework (DRF) 构建的 API 上全局(在所有 API 端点上)禁用 OPTIONS
方法
当前 OPTIONS
调用返回,
{
"parses": [
"application/json",
"application/x-www-form-urlencoded",
"multipart/form-data"
],
"renders": [
"application/json"
],
"name": "Login Oauth2",
"description": ""
}
这是我不想让别人偷看的东西。我想返回一个空白字符 就像 github 在其 API 或其他东西上所做的那样。
我试过了
@api_view(['POST'])
def my_method(request):
if request.method == 'OPTIONS':
return Response()
在一个基于函数的 View 上,它返回一个 但检查标题显示,
Allow →POST, OPTIONS, OPTIONS
其中有一个重复的 OPTIONS
。
我如何实现它?谢谢。
最佳答案
在您的设置中,添加如下内容:
REST_FRAMEWORK = {
'DEFAULT_METADATA_CLASS': None,
}
if DEBUG:
# the default value
REST_FRAMEWORK['DEFAULT_METADATA_CLASS']: 'rest_framework.metadata.SimpleMetadata'
您也可以实现自己的元数据类。将此设置为 None 将使其在 OPTIONS
请求上返回 HTTP 405。
关于python - 如何全局禁用 Django Rest Framework 上的 OPTIONS 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38402094/