您好我正在寻找创建一个简单的 webhook 接收器并将数据转储到表中。
这是用于使用 Zipwhip 接收短信。Zipwhip 将发送带有 JSON 的帖子。
需要接收JSON并处理。
有什么简单的方法可以做到这一点。
提前致谢。
您好我正在寻找创建一个简单的 webhook 接收器并将数据转储到表中。
这是用于使用 Zipwhip 接收短信。Zipwhip 将发送带有 JSON 的帖子。
需要接收JSON并处理。
有什么简单的方法可以做到这一点。
提前致谢。
在ServiceStack中,您的回调只需要匹配您的响应 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 响应,您可以使用对象属性来接受任意 JSON,但是我们建议尽可能使用 Typed 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; }
}
我实际上正在开发一个从 Angular 前端接收 Json 的 .net 项目,所以这应该是相同的概念。还要确保您收到的是真正可行的对象,例如。
{Departments: 4, Note: "This is notes 2020Q1W13", WeekEnding: "2020-01-25T00:00:00"}
还可以尝试查看这个对 webhook 有帮助的示例。
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 表单数据,但如果需要,可以转换为更具体的类型。