必需参数

请求参数默认都是必需的,可以通过将 required 设置为 False,或者提供一个默认值来取消参数的必需条件。

schemas.py [示例1]
from django_oasis import schema


class BookSchema(schema.Model):
    title = schema.String()
    author = schema.String(required=False)
    classification = schema.Integer(default="传记")
views.py [示例1]
from django_oasis.core import Resource
from django_oasis.parameter import JsonData

from .schemas import BookSchema


@Resource("/book")
class BookAPI:
    def get(self, book=JsonData(BookSchema)): ...
SwaggerUI [示例1]

二次改写

django_oasis.schema.Model 支持通过 required_fields 参数改写其必需字段。

指定部分字段为必需字段

views_partial_required.py [示例1]
from django_oasis.core import Resource
from django_oasis.parameter import JsonData

from .schemas import BookSchema


@Resource("/book")
class BookAPI:
    def get(
        self,
        book=JsonData(
            BookSchema(required_fields=["title", "author"]),
        ),
    ): ...
SwaggerUI [示例1]

指定所有字段为必需字段

views_all_required.py [示例1]
from django_oasis.core import Resource
from django_oasis.parameter import JsonData

from .schemas import BookSchema


@Resource("/book")
class BookAPI:
    def get(
        self,
        book=JsonData(
            BookSchema(required_fields="__all__"),
        ),
    ): ...
SwaggerUI [示例1]

指定所有字段为非必需字段

views_all_unrequired.py [示例1]
from django_oasis.core import Resource
from django_oasis.parameter import JsonData

from .schemas import BookSchema


@Resource("/book")
class BookAPI:
    def get(
        self,
        book=JsonData(
            BookSchema(required_fields=[]),
        ),
    ): ...
SwaggerUI [示例1]