我在我的 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");
}
uj5u.com熱心網友回復:
當 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();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/428085.html
下一篇:ForgeAPI將{URL}/workitems的InventorParams轉換為支持的格式,如svf、dwg
