gpt4 book ai didi

azure - 从程序员的角度来看API和Webhook的区别

转载 作者:行者123 更新时间:2023-12-02 06:30:48 27 4
gpt4 key购买 nike

我最近遇到了术语 Webhook(在 Azure 警报、Github 部署等中)。为了理解 API 和 Webhook 之间的区别,我阅读了 stackexchange 中的解释。和 sendgrid 。我的理解是,区别在于 API 的调用方式。但这听起来很令人困惑。我认为任何 API 都会遵循以下原则:

  1. 可以接受一些输入
  2. 执行一些操作
  3. 回复来电者

如果上述情况属实,则无需根据 API 的调用方式对 API 进行分类。至少,从编码的角度来看确实如此,因为只要调用 API 并获取输入(如果需要),API 就会正常工作。

为了通过示例解释我对这些术语的理解,Azure 目前提供(在撰写此问题时处于预览模式)在设置警报时创建操作组。支持的两种警报类型是 Azure Function 和 Webhook。我可以创建一个 Http Trigger Azure 函数,并在两个警报中使用它,其中第一个警报属于 Azure Function 类型,第二个警报属于 Webhook 类型。令我惊讶的是,即使我使用 Http Trigger Azure 函数,Webhook 类型警报也能正常工作(请注意,Azure 也提供了用于创建 Webhook Azure 函数的模板)。下面给出的是我编写的用于设置警报 Webhook 的 Http 触发器 Azure 函数 ( actual link to code with instructions )。

#r "Newtonsoft.Json"
using System.Net;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

public async static Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log, ICollector<string> outputQueueItem)
{
log.Info("C# HTTP trigger function processed a request.");

string jsonContent = await req.Content.ReadAsStringAsync();
JToken activityLog = JObject.Parse(jsonContent.ToString())
.SelectToken("data.context.activityLog");

//captures the details of the resource group being modified
log.Info(string.Format("Resource group '{0}' was {1} on {2}.",
(string)activityLog["resourceGroupName"],
((string)activityLog["subStatus"]).ToLower(),
(DateTime)activityLog["eventTimestamp"]));

return req.CreateResponse(HttpStatusCode.OK);
}

至少在 Azure 示例中,Webhook Azure 函数看起来没有什么特别的作用,否则 Webhook 类型警报将无法与 Http Trigger Azure 函数一起使用。那么,当您使用 WebAPI 编写 REST API 和 Webhook 时,编码方式或思维过程有什么不同吗?

最佳答案

从功能上来说,没有真正的区别,但它们是不同的

使用 API,作者可以为给定端点定义规范(受众、协议(protocol)、动词、参数等),而使用 Web Hook,则由第三方指定。

保持差异化非常重要,因为它将帮助您或其他开发人员了解该功能的使用方式,以及在使用 Web Hook 的情况下,如果其目标消费者使用该功能,您的解决方案的哪些部分将受到影响更改其规范。

关于azure - 从程序员的角度来看API和Webhook的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51569633/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com