相关疑难解决方法(0)

Django REST框架:非模型序列化器

我是Django REST框架的初学者,需要你的建议.我正在开发一个Web服务.该服务必须为其他服务提供REST接口.我需要实现的REST接口不能直接使用我的模型(我的意思是get,put,post,delete操作).相反,它为其他服务提供了一些计算结果.根据请求,我的服务进行一些计算,然后返回结果(不将结果存储在自己的数据库中).

以下是我对如何实现REST接口的理解.如果我错了,请纠正我.

  1. 创建进行计算的类.将其命名为"CalcClass".CalcClass在其工作中使用模型.
    • 计算所需的参数传递给构造函数.
    • 实现calc操作.它将结果返回为"ResultClass".
  2. 创建ResultClass.
    • 源自对象.
    • 它只包含含有calc结果的属性.
    • calc结果的一部分表示为元组的元组.据我了解,进一步序列化为这些结果实现一个单独的类并将这些对象的列表添加到ResultClass会更好.
  3. 为ResultClass创建序列化程序.
    • 从serializers.Serializer派生.
    • calc结果是只读的,因此主要使用Field类作为字段,而不是专门的类,例如IntegerField.
    • 我不应该在ResultClass和Serializer上都不会使用save()方法,因为我不会存储结果(我只想根据请求返回它们).
    • Impl序列化器用于嵌套结果(记住上面提到的元组元组).
  4. 创建视图以返回计算结果.
    • 来自APIView.
    • 需要get().
    • 在get()中创建CalcClass,其中包含从请求中检索的params,调用其calc(),获取ResultClass,创建Serializer并将ResultClass传递给它,返回Response(serializer.data).
  5. 网址
    • 在我的案例中没有api root.我应该有URL来获得各种计算结果(使用diff params计算).
    • 为api浏览添加调用format_suffix_patterns.

我错过了什么?这种方法一般是否正确?

django rest django-rest-framework

148
推荐指数
1
解决办法
4万
查看次数

标签 统计

django ×1

django-rest-framework ×1

rest ×1