开放API 3.0.1只读注解

tar*_*rka 3 java annotations swagger openapi

我在使用 Open API 3.0.1 java 注释定义readOnly特定方法的属性时遇到一些问题。在操作期间,POSTAPI 需要一个NewAccount模型。这是模型的截断表示;

{
    "user": {
        "id": "...",
        ...
    },
    "account": {
        "id": "...",
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要的是定义此操作中的user.idand 。我的所有文档都是通过注释从代码生成的,这就是我到目前为止所拥有的;account.idreadOnly

{
    "user": {
        "id": "...",
        ...
    },
    "account": {
        "id": "...",
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

Hel*_*len 5

您需要将@Schema(accessMode = Schema.AccessMode.READ_ONLY)注释添加到属性中id。这将将该属性标记为生成的 OpenAPI 定义中的id属性。readOnly: true

来自这里的示例:

import io.swagger.v3.oas.annotations.media.Schema;

public class ReadOnlyFields {
    @Schema(accessMode = Schema.AccessMode.READ_ONLY)
    public Long id;
}
Run Code Online (Sandbox Code Playgroud)

  • 但这会将其标记为永久“只读”。我想要实现的目标是将其标记为“readOnly”,仅用于此特定的“POST”。如果我希望它始终为“readOnly”,您的注释是绝对正确的。在我的 @Schema 定义中应该有一种方法可以为我可以定义的特定属性添加“accessMode”。 (3认同)