是否有一种方法可以隐藏某个端点的某些方法,而不是整个端点? (例如,显示POST方法,但隐藏一个DELETE方法)
我尝试使用AutoSchema
例如端点
router.register(r'audittrial', AuditTrialViewSet, 'AuditTrial')
将定义以下架构
class AuditTrialCustomView(AutoSchema):
@staticmethod
def get_field(name, required, location, schema, description):
return coreapi.Field(
name=name,
required=required,
location=location,
schema=schema,
description=description
)
def get_manual_fields(self, path, method):
extra_fields = []
if method == 'GET':
extra_fields = [
self.get_field("from", False, "query", coreschema.String(), "Date of the start of the Audit Trial"),
....
]
return extra_fields
有什么方法可以实现这一目标?
答案 0 :(得分:1)
DRF有以下示例-看看它是否对您有帮助。
class CustomAutoSchema(AutoSchema):
def get_link(self, path, method, base_url):
# override view introspection here...
@api_view(['GET'])
@schema(CustomAutoSchema())
def view(request):
return Response({"message": "Hello for today! See you tomorrow!"})
,以便api_view
装饰器可以为您提供帮助。它以list中的方法列表作为参数。