Я думаю о переписывании кода WebAPI в C # ASP.NET Core в F # Giraffe.
Однако для некоторых конкретных конструкций я не могу найти эквивалентности, в частности для чего-то подобного приведенному ниже:
[HttpPost("DocumentValidationCallbackMessage")]
[Consumes("application/x-www-form-urlencoded")]
public async Task<IActionResult> DocumentValidationCallbackMessage([FromForm] string xml)
{
// Controller Action implementation
}
AFAIK, маршрутизация в Giraffe осуществляется не контроллерами, а функцией choose
:
let webApp =
choose [
GET >=>
choose [
route "/" >=> indexHandler
]
setStatusCode 404 >=> text "Not Found" ]
Я не могу понять, как обойти в F # Giraffe последствия атрибутов C # ASP.NET Core [Consumes("application/x-www-form-urlencoded")]
и [FromForm]
: как непосредственно получить значение, переданное в форме, закодированной в URL.
Есть идеи?