嗨,我正在寻找创建一个简单的webhook接收器并将数据转储到表中。
这是用于使用Zipwhip接收SMS的。 Zipwhip将使用JSON发送帖子。
需要接收JSON和过程。
完成此操作的简单方法是什么。
提前感谢。
在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。
这可能是您的控制器中的接收方法在接收方的外观。确保您的接收和发送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表单数据,但是如果需要,可以转换为更特定的类型。