我希望我的REST API在存在异常和参数类型不匹配时抛出异常。以下是我的请求对象。
public class MyReqDto {
@NotNull
@Pattern(regexp = "[^a-zA-Z0-9]", message = "Invalid characters found in subscriberType")
private String subscriberType;
@NotNull
@Pattern(regexp = "^[a-zA-Z0-9]", message = "Invalid characters found in caseId")
private String caseId;
在上面的情况下,当一个请求违反这个字符串要求时,应该引发异常(向订阅类型提供一个整数值)。我还需要对无效字符进行验证,如*、-、
我的控制器看起来像这样。
@Controller
public class MyController {
@RequestMapping(value = "/my-controller/traceId/{Trace_ID}", method = RequestMethod.POST, produces =
"application/json")
public ResponseEntity<Object> startWork(@PathVariable Optional<String> Trace_ID,
@Valid @RequestBody MyReqDto myReqDto)
throws Exception {
我正在使用@Valid注释,并且我已经包含了Hibernate验证器的maven依赖项
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.0.2.GA</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
但问题是,它不验证我的输入,也不接受订阅类型和caseId的整数值。
对此的任何帮助都是高度赞赏的。
验证模式的问题出现在我的正则表达式中。下面解决了这个问题。
public class MyReqDto {
@NotNull
@Pattern(regexp = "^[a-zA-Z0-9]", message = "Invalid characters found in subscriberType")
private String subscriberType;
@NotNull
@Pattern(regexp = "^[a-zA-Z0-9]", message = "Invalid characters found in caseId")
private String caseId;
我注意到,默认情况下,将请求主体参数声明为字符串,并为其提供一个整数值可以正常工作,不会引发异常。然而,如果我们将一个请求体参数声明为整数,并为其提供一个字符串值,它将抛出一个异常。
简单地说,caseId=“123”和caseId=123在我的请求主体中具有相同的效果,因为caseId被声明为字符串。
不确定验收标准。我想你是在期待以下模式。
正则模式
>
[A-Za-z]*
匹配字母和空格。
“*[^0-9].*”
匹配数字
https://www.vogella.com/tutorials/JavaRegularExpressions/article.html
我参与了一个小型测试项目,以检查Spring Reactive Web应用程序实际上是如何与MongoDB一起工作的。 我遵循手册https://docs.spring.io/spring/docs/5.0.0.M4/spring-framework-reference/html/web-reactive.html 它指出我可以在控制器中处理POST请求,例如: 虽然这似乎不起作用。这里是我实现的
我们正在使用JAX RS为我们的一个项目实现一个REST API。要求是用户将以JSON格式传入请求对象。 让我们假设我们有一个在命中APIendpoint时调用的方法 示例请求对象: { “firstName”:“Test”, “lastName”:“Name”, “sno”:“A123” } 吸气剂和setter 现在,如果用户尝试向上面给出的请求对象添加其他参数(例如:“age”)并调用ap
问题内容: 我尝试建立一个非常简单的网站,在该网站中可以将数据添加到sqlite3数据库中。我有两个文本输入的POST表单。 index.html: forms.py: views.py: 但是,当我单击“提交”按钮时,出现403错误: 我已经包含{% csrf_token %}在index.html中。但是,如果这是一个RequestContext问题,我真的不知道在哪里以及如何使用它。我希望所
我有一个REST API使用POST调用来创建记录,我希望在POST调用中传递某些对象,如果缺少任何东西,我必须直接拒绝它们的唯一, 但是,当使用丢失的属性进行Post调用时,我可以在MongoDB中创建一个条目,我不想保留它,因为这不是一个正确的请求,@validation对我来说不起作用,我正在使用spring boot 2.0.6和MongoDB 4.0.4,任何帮助都非常感谢。提前感谢
我正在使用Spring引导应用程序连接MongoDB实例。我们已在MongoDB上启用了以下角色的身份验证 角色:[ { role: "dbOwner ",db: "{{ mongo.database_name }}" } 角色:[ { role: "readWrite ",db: "{{ mongo.database_name }}" } 我们使用conf文件提供凭证 数据: mongodb。u
我想用注释验证我的请求体,但是它在Spring Boot中不起作用 我在JAR文件中有一个请求类,我不能用两个字段来修改它。一个字段的类型为Object。我的控制器类接受这个类对象作为请求主体。当我将下面的JSON传递给控制器时,验证不起作用。下面是代码示例。 请求类: 另一类: 控制器类: 呼叫代码设置请求如下: 这是我发出的请求: 超过64个字符的firstName: 示例JSON: 如果不包