如何在 .NET 6 中获取 webhook 响应数据
How to get webhook response data in .NET 6
我已经在我的 API 中创建了一个端点,我将使用它来使用 Uber 的 webhook。
这是我第一次使用 webhook,所以:
我将如何使用我的端点获得他们给我的响应?
这是他们将发送给我的内容(以下数据用于测试):
{
"event_type": "orders.notification",
"event_id": "c4d2261e-2779-4eb6-beb0-cb41235c751e",
"event_time": 1427343990,
"meta": {
"resource_id": "153dd7f1-339d-4619-940c-418943c14636",
"status": "pos",
"user_id": "89dd9741-66b5-4bb4-b216-a813f3b21b4f"
},
"resource_href": "https://api.uber.com/v2/eats/order/153dd7f1-339d-4619-940c-418943c14636",
}
这是我的 Api 端点:(为空,因为我不知道如何处理它)
[HttpPost("/api/v1/.../delivery/hook")]
[ProducesResponseType(200)]
[ProducesResponseType(400)]
[ProducesResponseType(404)]
public async Task<IActionResult> HookDelivery()
{
return Ok("hook reached");
}
当 webhook 事件发生时,源应用程序通常会触发一个 http POST。因此,最简单的方法是创建您提供的 JSON 对象的 C# 表示形式,并将其用作 API 方法的输入参数。像这样:
public class WebHookData
{
public string EventType {get;set;}
public string EventId {get;set;}
etc....
}
然后
[HttpPost("/api/v1/.../delivery/hook")]
[ProducesResponseType(200)]
[ProducesResponseType(400)]
[ProducesResponseType(404)]
public async Task<IActionResult> ExistTerminalSerialNumber(WebHookData webHookData)
{
// do something with your input here
return Ok("hook reached");
}
或一些通用的东西,并具有将传入对象“转换”为您想要的任何对象的自定义方法:
public async Task<IHttpActionResult> ExistTerminalSerialNumber([FromBody]JObject data)
{
string eventType= data["event_type"].ToString();
switch (eventType)
{
case "orders.notification":
// do something
return Ok();
default:
return BadRequest();
}
}
我已经在我的 API 中创建了一个端点,我将使用它来使用 Uber 的 webhook。 这是我第一次使用 webhook,所以: 我将如何使用我的端点获得他们给我的响应?
这是他们将发送给我的内容(以下数据用于测试):
{
"event_type": "orders.notification",
"event_id": "c4d2261e-2779-4eb6-beb0-cb41235c751e",
"event_time": 1427343990,
"meta": {
"resource_id": "153dd7f1-339d-4619-940c-418943c14636",
"status": "pos",
"user_id": "89dd9741-66b5-4bb4-b216-a813f3b21b4f"
},
"resource_href": "https://api.uber.com/v2/eats/order/153dd7f1-339d-4619-940c-418943c14636",
}
这是我的 Api 端点:(为空,因为我不知道如何处理它)
[HttpPost("/api/v1/.../delivery/hook")]
[ProducesResponseType(200)]
[ProducesResponseType(400)]
[ProducesResponseType(404)]
public async Task<IActionResult> HookDelivery()
{
return Ok("hook reached");
}
当 webhook 事件发生时,源应用程序通常会触发一个 http POST。因此,最简单的方法是创建您提供的 JSON 对象的 C# 表示形式,并将其用作 API 方法的输入参数。像这样:
public class WebHookData
{
public string EventType {get;set;}
public string EventId {get;set;}
etc....
}
然后
[HttpPost("/api/v1/.../delivery/hook")]
[ProducesResponseType(200)]
[ProducesResponseType(400)]
[ProducesResponseType(404)]
public async Task<IActionResult> ExistTerminalSerialNumber(WebHookData webHookData)
{
// do something with your input here
return Ok("hook reached");
}
或一些通用的东西,并具有将传入对象“转换”为您想要的任何对象的自定义方法:
public async Task<IHttpActionResult> ExistTerminalSerialNumber([FromBody]JObject data)
{
string eventType= data["event_type"].ToString();
switch (eventType)
{
case "orders.notification":
// do something
return Ok();
default:
return BadRequest();
}
}