Я создаю прототип реализации API и сталкиваюсь с основной проблемой c невозможности прочитать JSON
объект, который я передал в теле запроса из Fiddler
. Моя реализация основана на некоторых примерах, которые я нашел в разных уроках для начинающих.
Это мой вызов API:
https://{Something}/servername/{something1}/checkAvailability?{api-version}
Это запрос POST и тело запроса (JSON) : {name: "resource1", опция: "include"}
Я пытаюсь проанализировать его на контроллере с помощью [FromBody]. Однако параметр [FromBody] всегда читается как нулевой:
[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;
}
}
Вместо использования объекта я также попытался прочитать простую строку. Но также не мог прочитать это.
Кроме того, если кто-то может поделиться учебниками, которые помогли им иметь хорошее базовое c понимание реализации API, это было бы здорово. Большинство учебных пособий, с которыми я сталкивался, говорят о принципах проектирования API, а не о подходах к его реализации.