2
Django REST框架:非模型序列化器
我是Django REST框架的初学者,需要您的建议。我正在开发Web服务。该服务必须提供与其他服务的REST接口。我需要实现的REST接口不能直接与我的模型一起使用(我的意思是获取,放置,发布,删除操作)。相反,它为其他服务提供了一些计算结果。根据请求,我的服务会进行一些计算,只是将结果返回(不将结果存储在自己的数据库中)。 以下是我对如何实现REST接口的理解。纠正我,如果我错了。 创建进行计算的类。将其命名为“ CalcClass”。CalcClass在其工作中使用模型。 计算所需的参数传递给构造函数。 实现calc操作。它以“ ResultClass”的形式返回结果。 创建ResultClass。 源自对象。 它仅具有包含calc结果的属性。 计算结果的一部分表示为元组的元组。据我了解,最好进一步序列化为这些结果实现一个单独的类,并将此类对象的列表添加到ResultClass中。 为ResultClass创建序列化器。 从序列化器派生。 calc结果是只读的,因此主要将Field类用于字段,而不是专门的类(例如IntegerField)。 我不应该在ResultClass或Serializer上都使用save()方法,因为我不会存储结果(我只想根据要求返回它们)。 用于嵌套结果的Impl序列化器(请记住上面提到的元组的元组)。 创建视图以返回计算结果。 从APIView派生。 只需要get()。 在get()中创建具有从请求中检索到的参数的CalcClass,调用其calc(),获取ResultClass,创建Serializer并将ResultClass传递给它,返回Response(serializer.data)。 网址 我的情况下没有api根。我应该只有URL才能获得各种计算结果(带diff参数的计算)。 添加调用format_suffix_patterns进行api浏览。 我错过了什么?该方法总体上正确吗?