власний формат сутності.
Наприклад, маю клас
class Jopa {
public string Small { get; init;}
public long Big { get; init; }
}
І якщо маю зараз:
public IActionResult Something([FromQuery] Jopa jop)
То він його трансформує у ?small=Yes&Big=1
Але хочеться зробити так, щоб трансформувались як ?[Yes,1] (це як приклад).
Серіалізатор на таке написав, але як виявилось його asp.net не юзає для реквестів. Не підкажете як правильно це реалізувати? (Ймовірно через ModelBinder, чи щось на кшталт цього?)
Це близько до мапінгу масиву
Мені не зовсім зрозуміло механізм, по якому asp.net мапить щось з квері, або з руту. Якби дізнатись як можна створити або власний атрибут, або власний серіалізатор для необхідного типу
FromQuery это параметры в адресной строке передаются?
Не зовсім зрозумів питання, але спробую відповісти. Якщо мається на увазі в руті (щось типу api/v1/{YOURVALUE}), то ні. Якщо в цілому в адресній строці, то так (типу api/v1?{QUERYVALUE})
Ну типа как у гугла, да... А есть разница какая-то между подходами?
https://github.com/dotnet/aspnetcore/blob/39564d529f84f7a3bbac5b28ba11060e8ac30375/src/Mvc/Mvc.Core/src/ModelBinding/QueryStringValueProviderFactory.cs#L21-L30
Ну, наскільки памʼятаю з документації: Те що в руті -- обовʼязкове для виконання ендпоїнту. Те що в квері -- необовʼязкові параметри й без них ендпоїнт має теж працювати. Грубо кажучи, як додаткові фільтри
Дуже дякую! Буду досліджувати й намагатися реалізувати для своїх потреб (звісно ж з виєбаними байтами за канонами Єгора)
https://www.seeleycoder.com/blog/mixed-model-binding-aspnetcore/
https://learn.microsoft.com/en-us/aspnet/core/mvc/advanced/custom-model-binding?view=aspnetcore-7.0
Обсуждают сегодня