如何解决.Net Core API拒绝不完整的JSON请求
如果正文的JSON不完整,我需要拒绝该请求。
我有一个.NetCore API,它具有很多属性。该API会执行很多操作,并且会收到很多请求,因此,如果JSON事先不完整,则要拒绝。
如果我在下方的AssignmentDetail类中,
public class AssignmentDetail
{
public string Name { get; set; }
public string Address { get; set; }
}
完整的JSON示例
{
"Name":"dfsdfsdf","Address":"essdfsdfsd",}
不完整的JSON示例
{
"Name":"dfsdfsdf"
}
我有一些方法,但是需要一些可以在启动时完成的操作,只是针对该操作。
- 为该AssignmentDetail模型使用自定义的可序列化(不需要这种方法)
- 创建一个函数来验证不完整的JSON,例如validateIncompleteJSON()(不需要这种方法)
- ConfigureServices(IServiceCollection服务)中的某些内容,但仅用于该控制器操作
[HttpPost]
[Route("ProcessAssignment")]
public async Task<AssignmentResponseModel> ProcessAssignment(AssignmentDetail model)
{
var response = new AssignmentResponseModel();
try
{
//can call function here to check the incomlpete JSON
//validateIncompleteJSON();
//var result = await _mediator.Send(queryDetails);
//response = result.Response;
}
catch (Exception ex)
{
throw exception;
}
return response;
}
我不想使用Serializable方法,因为该类太大了,将不得不处理所有属性。
解决方法
数据注释将必需属性添加到属性
型号代码
#!/bin/sh
message="Hello,Aurora"
scriptname="hello_script_1_controlmQA"
generate_post_data()
{
cat <<EOF
{
"data":"{\"actiontodo\":\"Action to do for test nr:
1\",\"critical\":\"LOW\",\"fixstatus\":\"NOTCONCERN\",\"host\":\"MTR_SOME_HOST\",\"message\":\"$message\",\"mgsApplication\":\"MTR\",\"sMxtype\":\"PROD\",\"scriptname\":\"$scriptname\"}","msg":"NotificationReceiveDTO without dict to send at: 2020-06-07T11:14:09.794 Created at: 2020-
06-07T11:14:09.797","msgType":"DATA"
}
EOF
}
/usr/bin/wget --no-check-certificate --header="Accept: application/json" --
header="Content-Type:application/json" --post-data "$(generate_post_data)"
"https://cas.internal.unicreditgroup.eu:8181/Aurora/rs/nores/renosub"
控制器代码
public class AssignmentDetail
{
[Required]
public string Name { get; set; }
[Required]
public string Address { get; set; }
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。