从Webhook在C#中使用JSON

问题描述 投票:0回答:2

嗨,我正在寻找创建一个简单的webhook接收器并将数据转储到表中。

这是用于使用Zipwhip接收SMS的。 Zipwhip将使用JSON发送帖子。

需要接收JSON和过程。

完成此操作的简单方法是什么。

提前感谢。

c# json asp.net-web-api servicestack asp.net-webhooks
2个回答
1
投票

ServiceStack中,您的回调仅需要匹配您的Response DTO的形状,例如:

[Route("/path/to/callback")]
public class CorpNotes
{
    public int Departments { get; set; }

    public string Note { get; set; }

    public DateTime WeekEnding { get; set; }
}

// Example of OrmLite POCO Data Model 
public class MyTable {} 

public class MyServices : Service
{
    public object Any(CorpNotes request)
    {
        //... 
        Db.Insert(request.ConvertTo<MyTable>());
    }
}

示例使用Auto Mapping Utils填充OrmLite POCO数据模型,您可能需要在保存数据模型之前进行其他处理。

如果回调可以在有效负载中发送任意的JSON响应,请can use an object property to accept arbitrary JSON,但我们建议尽可能使用类型化DTO。


0
投票

这可能是您的控制器中的接收方法在接收方的外观。确保您的接收和发送json对象匹配。

    [HttpPost]
    [Route("Edit")]
    public JsonResult Edit([FromBody] CorpNotes newMessage)

        {return Json(TotalWeekNoteSearch);}

public class CorpNotes
{
    public int Departments { get; set; }

    public string Note { get; set; }

    public DateTime WeekEnding { get; set; }
}

我实际上是在一个.net项目中,它是从Angular前端接收Json的,所以这应该是相同的概念。还请确保您收到的是真正可行的对象,例如。

    {Departments: 4, Note: "This is notes 2020Q1W13", WeekEnding: "2020-01-25T00:00:00"}

也请尝试研究此示例,这将对Webhooks有所帮助。

public class MyWebHookHandler : WebHookHandler
{
    public MyWebHookHandler()
    {
        this.Receiver = "custom";
    }

    public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
    {
        CustomNotifications notifications = context.GetDataOrDefault<CustomNotifications>();
        foreach (var notification in notifications.Notifications)
        {
            ...
        }
        return Task.FromResult(true);
    }
}

数据类型通常是JSON或HTML表单数据,但是如果需要,可以转换为更特定的类型。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.