【发布时间】:2018-03-26 09:53:04
【问题描述】:
我最近一直在阅读有关领域驱动设计 (DDD) 的文章,我喜欢这个概念,尤其是洋葱架构的想法与之相匹配 (https://www.youtube.com/watch?v=pL9XeNjy_z4)。
我很想了解我们如何使用 Django Rest Framework 实现这样的架构,或者换句话说我们可以使用 Onion arch 风格的 Django Rest 框架进行 DDD 吗?
- 是否可以将 Onion 架构中的概念映射到 DRF?
- 像 Apache isis (https://isis.apache.org/) 这样的框架通过构建面向对象的 UI 来实现 DDD,用户可以在其中直接与域实体交互,那么 DRF 怎么可能做这样的事情呢?
例如,我以以下方式编写 DRF 代码:
在 models.py 中我会定义我的模型:
class Library(models.Model):
library_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=30)
...
#This helps to print in admin interface
def __str__(self):
return u"%s" % (self.name)
在 serializers.py 我会有我的模型序列化器:
class LibrarySerializer(serializers.ModelSerializer):
class Meta:
model = Library
fields = '__all__'
我会在urls.py中有对应的url:
router.register(r'libraries', LibraryViewSet)
在 views.py 中执行 CRUD 操作:
class LibraryViewSet(viewsets.ModelViewSet):
queryset = Library.objects.all()
serializer_class = LibrarySerializer
这与 DDD/Onion 架构有什么关系(可能经过适当的修改)?
【问题讨论】:
标签: django django-rest-framework domain-driven-design onion-architecture