OpenAPI (Swagger-UI) - 仅某些 API 的必填字段
OpenAPI (Swagger-UI) - Required field for some APIs only
我目前在我的 Spring 启动应用程序中使用 OpenAPI 3 (Swagger-UI),我想知道如何为某些 API 指定如果我对所有字段使用相同的模型 Java class,则只有某个字段是 required/optional。
这是我的示例:
@Getter
@Setter
@Accessors(chain = true)
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class UserRequest {
@NotEmpty(message = "{constraints.NotEmpty.message}")
private String username;
@NotEmpty(message = "{constraints.NotEmpty.message}")
private String password;
@NotEmpty(message = "{constraints.NotEmpty.message}")
private String cookie;
@NotEmpty(message = "{constraints.NotEmpty.message}")
private String csrfToken;
}
此 class 用作多个 API 的输入请求,但其中只有一些要求这些字段全部为必填项(即“密码”字段仅在登录 API,而不是注销)。
有没有办法使用 OpenAPI 的注释来突出显示需要它们的 API 的必填字段?
提前感谢您的帮助。
此致,
A.M.
我认为在这个 class 中您将无法指定参数何时是必需的或不是动态的,一些选项在 API 定义中指定(指定必需的参数)或者,如果从正文中检索 class,创建一个验证服务来验证字段值,甚至使用 DTO 隐藏那些你不想设置的字段并指定强制性字段,在此选项中 mapstruct 将是有用的。 https://mapstruct.org/
希望对您有所帮助,问候!
编辑:这里是一些 DTO 信息 What is a Data Transfer Object (DTO)?
我目前在我的 Spring 启动应用程序中使用 OpenAPI 3 (Swagger-UI),我想知道如何为某些 API 指定如果我对所有字段使用相同的模型 Java class,则只有某个字段是 required/optional。
这是我的示例:
@Getter
@Setter
@Accessors(chain = true)
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class UserRequest {
@NotEmpty(message = "{constraints.NotEmpty.message}")
private String username;
@NotEmpty(message = "{constraints.NotEmpty.message}")
private String password;
@NotEmpty(message = "{constraints.NotEmpty.message}")
private String cookie;
@NotEmpty(message = "{constraints.NotEmpty.message}")
private String csrfToken;
}
此 class 用作多个 API 的输入请求,但其中只有一些要求这些字段全部为必填项(即“密码”字段仅在登录 API,而不是注销)。
有没有办法使用 OpenAPI 的注释来突出显示需要它们的 API 的必填字段?
提前感谢您的帮助。
此致, A.M.
我认为在这个 class 中您将无法指定参数何时是必需的或不是动态的,一些选项在 API 定义中指定(指定必需的参数)或者,如果从正文中检索 class,创建一个验证服务来验证字段值,甚至使用 DTO 隐藏那些你不想设置的字段并指定强制性字段,在此选项中 mapstruct 将是有用的。 https://mapstruct.org/
希望对您有所帮助,问候!
编辑:这里是一些 DTO 信息 What is a Data Transfer Object (DTO)?