只读与只写

我们用同一个 Model 来声明请求的输入和输出。

views.py [示例1]
from django_oasis import schema
from django_oasis.core import Operation, Resource
from django_oasis.parameter import JsonData


class MyModel(schema.Model):
    a = schema.String(read_only=True)  # 字段 a 设置为 “只读”
    b = schema.String(write_only=True)  # 字段 b 设置为 “只写”


@Resource("/api")
class API:
    @Operation(response_schema=MyModel)
    def post(
        self,
        data=JsonData(MyModel),
    ): ...

可以看到,由于字段 a 声明为“只读”。这意味着它可以作为响应的一部分发送,但不应作为请求的一部分发送;

而字段 b 声明为“只写”。因此,它可以作为请求的一部分发送,但不应作为响应的一部分发送。

SwaggerUI [示例1]