我一直在研究Tastypie API documentation for custom authorisation。
有八种可能的方法可用来创建自定义授权类。read_list
read_detail
create_list
create_detail
update_list
update_detail
delete_list
delete_detail
我真的很难理解每种方法的语义。它们与HTTP动词(GET,POST,PUT,PATCH,DELETE等)的对应关系如何?
最初,我认为*_list
方法可能意味着...
给我一个用户可以[创建,读取,更新,删除]的所有对象的列表
但是“创造”案...
给我一个用户可以创建的所有对象的列表
...真的没有意义,因为对象已经创建。为了使我的解释有意义,这必须是用户可以创建的所有可能对象的列表(这显然是不可行的)。
那么create_list
到底是什么意思? create_detail
呢?与create_list
有什么不同?
感谢您的澄清!
最佳答案
问题是关于哲学和概念的,实际上有3个问题,但让我尝试简要地回答您的问题。
* _list与* _detail:
* _list方法是用户有权访问的对象的过滤器。
* _detail方法是告诉我们是否可以访问确切对象的布尔值。
例:
read_list-过滤对象,用户将在site.com/api/v1/cool_object/上看到
read_detail-告诉我们是否允许用户查看site.com/api/v1/cool_object/2
将CRUD映射到HTTP(Tastypie):
创建-发布
阅读-获取
更新-PUT(上传新实体)/ PATCH(仅发送更改的字段)
删除-删除
为什么要create_list:
添加该方法只是为了保持一致性和一致性。因此,您认为其中没有任何实际意义是正确的。
我们甚至可以在tastypie/authorization.py中对其进行检查:
def create_list(self, object_list, bundle):
"""
Unimplemented, as Tastypie never creates entire new lists, but
present for consistency & possible extension.
"""
关于python - 在stylishpie的自定义授权中,create_list是指什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32490360/