我正在对API实现进行原型设计,并遇到一个基本问题,即无法读取我从JSON
的请求正文中传递的Fiddler
对象。我的实现基于我在不同的初学者教程中找到的一些示例。
这是我对API的调用:
https://{Something}/servername/{something1}/checkAvailability?{api-version}
这是一个 POST 请求,请求正文是(JSON): {name:“ resource1”,选项:“ include”}
我试图在Controller上解析它的方式是使用[FromBody]。但是,[FromBody]参数始终读取为null:
[HttpPost]
// A bunch of other attributes.
public HttpResponseMessage CheckAvailability(
string serverName,
[FromBody] CheckProperties props)
{
// While debugging, I am able to reach here and successfully see the serverName as "something1" which passed in the API
if (serverName == null || serverName == "")
{
return CreateResponse(HttpStatusCode.BadRequest);
}
// Able to reach here but the value of props is read as null. What is the right way to read the request body in props(CheckNameProperties) object?
if (props != null) // props is always null for me.
{
// Do something
}
}
CheckProperties.cs
public class CheckProperties
{
[JsonProperty]
public string Name{ get; set; }
[JsonProperty]
public string Option { get; set; }
public CheckProperties(string name, string options)
{
Name = name;
Option = options;
}
}
除了尝试使用对象之外,我还尝试读取一个简单的字符串。但是,也无法阅读。
此外,如果有人可以分享帮助他们对实现API有了很好的基本了解的教程,那就太好了。我碰到的大多数教程都是在谈论API设计原理,而不是实现它的方法。