Как поместить вещи в мой RequestBody для моего метода POST, чтобы найти? - PullRequest
0 голосов
/ 26 июня 2019

Я очень новичок в ASP.NET Core, C # и RESTful API. Я пытаюсь создать простое приложение для практики прямо сейчас, чтобы практиковать различные команды REST. «База данных», с которой я работаю, представляет собой список объектов, которые имеют имя, возраст и вес.

В настоящее время я пытаюсь реализовать метод POST. Я мог бы потенциально использовать [FromQuery], чтобы получить данные, необходимые для создания нового объекта и его добавления. Тем не менее, я думаю, что было бы лучше получить к нему доступ FromBody, особенно если я хочу добавить больше полей позже.

Я не совсем понимаю / знаю, как я мог бы поместить материал / спросить пользователя (??) о данных для этого в теле. Я думаю, что понимаю, когда URL вызывается, он анализирует все, что находится в теле страницы / возвращенном .json, и находит его таким образом, но я не знаю, как его заполнить.

Пока это просто мой код для POST:

[HttpPost]
        public ActionResult<List<Objects>> Post([FromQuery] String NewName, [FromQuery] int NewAge, [FromQuery] double NewWeight)
        {
            return MyList.AddItem(NewName, NewAge, NewWeight);

        }

Мне бы очень хотелось узнать, как это работает или как я могу это сделать ... спасибо!

1 Ответ

1 голос
/ 26 июня 2019

Создайте модель, содержащую все необходимые данные.

public class NewModel {
    public String NewName { get; set; }
    public int NewAge { get; set; }
    public double NewWeight { get; set; }
}

обновите действие, ожидая, что данные, и добавьте к нему аннотации с [FromBody]

[HttpPost]
public ActionResult<MyModelType> Post([FromBody] NewModel data) {
    if (ModelState.IsValid) {
        var model = MyList.AddItem(data.NewName, data.NewAge, data.NewWeight);
        return model;
    }
    return BadRequest(ModelState);
}

.отправьте запрос с необходимыми данными в теле запроса, и механизм связывания модели должен заполнить модель в действии контроллера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...