Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

Как правильно сделать маршрутизацию в web api?

#net #aspnet_core


Я начинающий разработчик и пытаюсь написать web api для выбора товара из БД.
Подскажите пожалуйста, возможна ли такая маршрутизация и правильная ли она?
Архитектура видится следующая:
Аутентификация и авторизация пользователя. Каждой паре логин/пароль соответсвует
определённый код. Пусть будет 966 для примера.
Далее пользователь переводи по маршруту

1.
GET http://localhost:6171/api/orders/966/
    [HttpGet("{kod}")]
Выводиться список номенклатуры для выбора.

2.
Далее пользователь выбирает позицию и надо вывести ему доступное количество товара
GET http://localhost:6171/api/orders/966/GetKolvo?nom=карандаш

[HttpGet("{kod}/[action]")]

public IEnumerable GetKolvo([FromRoute]int kod, [FromQuery(Name = nom")]string nom)
{

выведет количество

}


3.
Метод, который отображает количество товара
И последний метод, который показывает номер ячейки, где данный товар находится
GET http://localhost:6171/api/orders/966/GetNomer?nom=карандаш&kol=6

???

На втором методе я застрял : ( то ли так вообще нельзя сделать/ неправильно , то
ли я криво маршрутизирую, но при таком запросе я получаю ошибку 404 и на этом всё : (

UPD!
Со вторым контроллером я разобрался.

Как же правильно делать в этом случае?Как должен выглядеть маршрут для третьего контроллера,
когда контроллеру передаются два параметра?

GET http://localhost:6171/api/orders/966/GetNomer?nom=карандаш&kol=6

Заранее спасибо!

Буду рад ссылке на документацию с примером.
    


Ответы

Ответ 1



Ура! Разобрался! В Startup.cs прописал : routes.MapRoute( name: "GetNomer", template: "api/[controller]/{kod}/{action}"); И по ссылке GET http://localhost:6171/api/orders/966/GetNomer?nom=карандаш&kol=6 стал возвращаться нужный результат. Вроде с маршрутами разобрался. Спасибо Всем!

Комментариев нет:

Отправить комментарий