Не могу понять. Вебхук принимает от бота сообщения.
Но они могут быть разного типа. Как правильно написать обработчик максимально типизировано?
Или только в строку и там уже как получится?
app.MapPost("/", async (AnyType data) => { return ""});
// or
app.MapPost("/", async ctx => { var body = ctx.Request.Body.Read();/.... return ""});
Здравствуйте, vaa, Вы писали:
Есть, наверное, какое-то поле, по которому можно определить конкретный тип сообщения?
1. Можно так:
app.MapPost("/", async (JObject payload) => {
var type = payload["type"];
swithch(type) {
case "type1": return Handle(payload.ToObject<MessageType1>());
case "type2": return Handle(payload.ToObject<MessageType2>());
default: return UnknownMessage(type);
}
});
2. Можно сделать иерархию классов WebHookMessage и через что-то вроде
https://github.com/manuc66/JsonSubTypes десериализовывать сразу в конкретный тип.
app.MapPost("/", async (WebHookMessageBase payload) => {
return GetHandler(payload.GetType()).Handle(payload);
});