Алоха: D Я хотел бы создать динамическую c привязку маршрута. Под этим я подразумеваю замену строки запроса динамическим c маршрутом.
Пример: Вместо этого:
POST http://localhost:5000/api/documents?templatename=individualemploymentagreement
this:
POST http://localhost:5000/api/documents/individualemploymentagreement
Примечание: после "http://localhost: 5000 / api / documents / " Я хочу поставить все, что захочу, но этот маршрут всегда будет использоваться, а то, что будет после, должно быть используется как переменная. Очевидно, что это приведет к несуществующему API Route на данный момент. Но есть ли способ справиться с этим?
Примечание 2: Причины, по которым я хочу это использовать: - Согласно "правилам" сервисов RESTful, строки запроса следует использовать только для запросы, в этом случае я не использую запрос, я вызываю стандартную службу документов c, которая, однако, обрабатывает каждый документ немного по-разному, когда это необходимо. Поэтому строки запроса не рекомендуются в моем случае. - Этот сервис будет работать с сотнями типов документов, поэтому я не могу по-разному указать путь / API для каждого из них. Так что это также не рекомендуется.
Мой код (в котором я использую строку запроса для {templateName}:
namespace DocumentGenerator.Api.Controllers
{
[Route("api/{controller}")]
[ApiController]
public class DocumentsController : ControllerBase
{
//useless details
[HttpPost]
public async Task<IActionResult> Generate([FromQuery] string templateName, [FromBody] object properties)
{
// according to {templateName} do this or that...
// useless details
}
}
}
Что Я хотел бы в коде :
namespace DocumentGenerator.Api.Controllers
{
[Route("api/{controller}")]
[ApiController]
public class DocumentsController : ControllerBase
{
//useless details
[HttpPost("{templateName}"]
public async Task<IActionResult> Generate([FromBody] object properties)
{
// according to {templateName} do this or that...
// useless details
}
}
}