首页
学习
活动
专区
圈层
工具
发布

怎样编写好的 API?

它并不是构建 API 的唯一方式,但是由于它的流行,即便是非开发人员也知道这种标准。...REST 要尽可能多地使用 HTTP 固有属性中的理念。 在 Level 0,没有使用任何这样的东西。我们只是构建自己的协议并把它作为一个专有层。...回到 Slack 的样例,如下展示了按照 Level 1 API,它们会是什么样子的: 现在,URL 发生了变化,从原先的“/api/chat.postMessage”变成了现在的“/api/channels...我们重新看一下 Slack 样例,如果我们使用 HTTP 动作来进行更多的操作会是什么样子: 我们可以使用 POST 方法发送消息到通用的通道,我们也可以使用 GET 方法从通用通道获取消息。...我们需要有一种方式来确认是否存在错误 / 异常:HTTP 状态码可以实现这一点,可能还会包含阐述它们的响应信息。

85220

AI 协助办公 |记一次用 GPT-4 写一个消息同步 App

将此端点 URL 配置到你的 Slack Outgoing Webhook 中。在处理收到的 Webhook 时,我们提取请求中的文本和用户名。...请注意,这是一个简单示例,没有处理错误和异常情况。在实际生产环境中,需要对这个程序进行适当的错误处理,以提高健壮性。增加需求我:哦,其实 Slack 推荐用的是它的 Event API,能改改吗?...选择要测试的 API 方法:使用左侧的菜单选择要测试的 Slack API 方法。例如,如果您要测试 "chat.postMessage" 方法,请单击左侧菜单中的此方法。...设置 API 参数:根据所选 Slack API 方法的要求,输入必需的参数和选项。根据 API 要求,您可能需要输入文本消息、目标频道、用户 ID 等参数。...如果响应体显示消息已成功发送或其他成功操作,则说明 API 已成功工作。如果出现错误或错误响应,可以在下一步中调试操作。

4.4K120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    我与大模型的API困境:MCP如何打破孤立与重构连接

    目前的MCP是在应用层面实现的,模型本身并不知道它的存在。如果未来的模型训练时就理解MCP协议,能够原生地处理资源和工具的概念,那将是一个质的飞跃。另一个方向是跨模型协作协议。...如果不同模型之间也能通过某种协议协作,比如GPT处理文本生成,Claude处理逻辑推理,中间通过标准协议交换上下文,那将开启"模型编排"的新时代。...我们一直在试图用API这个旧时代的工具来解决新时代的问题,就像试图用马车去跑高速公路。MCP的出现,让我重新思考了"连接"的本质。在AI时代,连接不应该是简单的请求与响应,而应该是上下文的流动与共享。...模型需要的不是一个能调用的API,而是一个能理解的上下文。这条路还很长。MCP本身也在快速演进,它的规范还在不断更新。但有一点是确定的:大模型正在从"被调用的API"走向"连接世界的智能体"。...如果用传统方式实现,我们需要:写一个后台服务定期轮询Slack API获取消息将消息文本和大模型的分析结果存储到数据库在AI助手的对话中,通过API查询这个数据库处理权限控制、数据同步、缓存策略等一系列问题光是架构设计就花了我们两天时间

    19110

    Slack 蜂窝架构迁移:背后的技术策略与挑战

    我们的服务所使用的一块物理硬件发生了故障,因此出现了一些错误,直到发生故障的硬件被移除。然而,在进行事故评审时,我们不禁问自己:让我们的用户体验到这样的中断是合理的吗?...来自用户的一个针对 Slack API 的请求(例如,在一个频道中加载消息)可能会扇出数百个发给后端服务的 RPC,每个 RPC 都必须完成调用才能向用户返回正确的响应。...引流是一种通用的缓解措施:只要故障包含在单个 AZ 内,即使尚未清楚导致故障的根本原因是什么,也可以有效地使用引流来缓解故障。...这是为了确保即使 AZ 完全离线也可以进行引流。 一种符合这些需求的简单实现是向每个 RPC 客户端发送一个信号,当客户端接收到这个信号时,它们会让流向特定 AZ 的一定百分比的流量失败。...我们最初的架构,后端分布在各个 AZ 中,因此错误会出现在所有 AZ 的前端 最终,我们得到了一个蜂窝架构。所有服务都存在于所有 AZ 中,但每个服务只与其 AZ 内的服务通信。

    64920

    创建一家互联网公司需要几个人?一个就够了

    这篇介绍了用很多「无聊」技术创建互联网产品的文章引起了很多网友的讨论,有人表示,技术本身就是一种手段,如果能够很好地实现产品的功能,即使是「无聊」的技术也会很棒。 ?...开发人员的播客搜索和目录 API。我们需要跟踪 API 使用情况,从付费用户处获取资金,进行客户支持等等。 一切都在 AWS 上运行。截至 2019 年 5 月 5 日有 20 台服务器在工作: ?...如果指定了 git commit 的 SHA,那么它将部署特定版本的代码——当我需要从错误的部署撤回时,这特别有用; 服务器类型:web、worker、api 或所有服务器。...Stripe 用于从用户处获取资金(主要用于 API)。 Google speech-to-text API 用于语音转换。 Kaiser Permanente 用于健康保险。...即使你搞砸了最初的产品,也很少有人会注意到。「宏观思维,细节到位,迅速反应!」只要你真正解决了问题,就算使用无聊的技术完成简单(甚至简陋)的任务也完全没问题。

    1.8K20

    如何在Ubuntu 16.04上使用Flask和Python 3编写Slash命令

    该程序从Slack接收信息并返回响应,该响应显示在Slack中。您可以通过阅读API文档了解有关slash命令的更多信息。...然后我们将定义命令并指定命令在调用命令时应该请求的URL。 要创建Slack应用程序,请访问https://api.slack.com/apps并单击绿色的“创建新应用程序”按钮。...命令的API文档声明我们应该使用Slack提供的与commnd关联的验证令牌来验证slash命令。 此验证令牌应保密,因此我们将其保存在一个名为.envfile的新文件中,该文件不受版本控制。...然后检查Nginx配置文件是否存在语法错误: (myprojectenv) $ sudo nginx -t 如果Nginx配置文件没有语法错误,请重新启动Nginx服务: (myprojectenv)...您应该看到以下响应: [untitled.png] 如果您收到一条消息,指出命令失败,请仔细检查代码myproject.py是否存在任何语法错误或问题。然后再试一次。

    3.9K40

    WebMonitor 实时监控网页变化,并发送通知程序

    ,需要做以下补充: xpath 获取元素文本信息,在浏览器得到的选择器后加/text(),如 //*[@id="id3"]/h3 => //*[@id="id3"]/h3/text() 获取元素属性信息...,在浏览器得到的选择器后加/@属性名,如想获取元素href值 //*[@id="id3"]/h3 => //*[@id="id3"]/h3/@href 获取元素及其子元素的所有文本信息,在浏览器得到的选择器后加...如 div#id3 > h3 => div#id3 > h3::text 获取元素属性信息,在浏览器得到的选择器后加::attr(属性名),如想获取元素href值 div#id3 > h3 => div...F12开发者工具中,也可以找到对应元素,然后右键该元素,选择“Copy Property Path”。...存在规则的情况下,如果文本发生变化,从前往后检查规则,若符合其中一项规则就发通知。

    16.2K33

    Agent未来已来?揭示LLM Agent技术架构与现实挑战

    但将这些架构扩展到生产环境仍然存在实际挑战。Agent工具交互的测试和调试非常困难——单个“幻觉”API 调用可能会破坏整个工作流程。...但即使实施了严格的访问策略,如果限制不当,Agent仍可能被诱导泄露敏感信息或执行危险操作。 在 LLM 部署中,安全性至关重要,尤其是在受监管的行业中。...微软强调对企业Agent进行人机监控,这表明我们在完全自主运行之前还有很长的路要走。 在整个案例研究中,出现了一个共同的理念:从简单开始,随着信心的增长逐渐扩大。...但系统的不稳定性是个大问题 - 知识幻觉、理解偏差、盲目执行风险指令等问题普遍存在。 业界也在努力解决这些挑战。...狂热者和怀疑论者之间存在一个平衡点。 LLM Agent是强大的工具,但终究只是工具而已。在合理限制和人工监督下使用,可以发挥巨大价值。但不能把它神化,也不该放弃人类对工具的主导权。

    1K10

    10.ChatGPT实战:10个实用技巧和窍门(1010)

    技巧3:文本校对 场景描述: 在撰写文档、文章、报告或任何书面材料时,确保语法正确和拼写无误是非常重要的。ChatGPT可以帮助用户快速识别和纠正文本中的错误,从而提高写作质量。...提高准确性:ChatGPT可以识别出人类可能忽略的错误,提供更准确的文本。 即时反馈:用户可以即时获得反馈,不必等待外部校对服务的响应。...的API Token slack_token = '你的Slack API Token' # 初始化Slack客户端 client = slack_sdk.WebClient(token=slack_token...总结 ChatGPT的出现标志着人工智能技术在辅助人类工作和学习方面迈出了重要的一步。通过不断探索和利用其功能,我们可以更有效地完成任务,提高生产力,并在日常工作中发挥创造力。...总的来说,ChatGPT的出现不仅颠覆了传统的人工智能应用,也为未来的人工智能发展提供了新的可能性和方向。

    90110

    gRPC:坏的部分

    这增加了调试 gRPC 调用的难度,因为即使是一元请求也需要分帧,这本是流式传输的特性。Protobuf 编码已足够复杂,无需在非必要之处增加额外的 gRPC 分帧。...此外,对于 Web API 而言,使用 cURL 示例来解释 gRPC 的使用方式非常困难。“需要启用服务器反射吗?”这句话我已说过无数次。 这种复杂性也体现在工具层面,尤其是强制的代码生成步骤。...即使支持 HTTP/2,浏览器也缺乏处理 HTTP Trailers 的能力,因此目前浏览器仍无法“原生”使用 gRPC。...在 Protobuf 中定义这个概念非常容易,但实际实现却可能繁琐且容易出错。尽管 gRPC 的创建者 Google 已为其 API 找到了解决方案,但缺乏标准化的方法,让其他人需要重复造轮子。...由于 Protobuf 规范已包含标准的JSON 映射[5],我不再需要担心文本格式。 如果你知道去哪里寻找,gRPC 社区其实非常活跃。例如,Buf Slack[6] 是一个很好的资源。

    52810

    提供程序101:使用K8s和Crossplane订购披萨

    我希望这篇文章可以帮助指导有抱负的提供程序建设者在正确的方向,并帮助你避免一些错误,我在编写我的第一个提供程序。...我还在Order对象上设置了一个属性,这样我就可以知道在Observe方法中稍后是否请求了订单。这让我返回ExternalObservation,其中包含关于资源是否为最新的或是否已创建的适当信息。...我一开始并没有意识到这一点,在我发现错误之前,Dominos已经完成了大约六份订单。...通常,用户会将云和本地基础设施与项目协调在一起,但正如你所看到的,也可以使用任何具有API的服务。安装之后,提供程序为Crossplane用户提供统一的接口和API来编排和操作它们所代表的托管资源。...如果你有兴趣了解更多关于如何使用Crossplane处理和抽象你自己的基础设施的知识,即使它与比萨饼无关,我们也很乐意与你进行交流。加入Slack社区并在Twitter上关注我们。

    1.2K30

    系统设计:生产环境中Web应用程序的体系结构

    它们确保用户请求均匀分布在多个服务器上,即使在流量高峰期间也能保持流畅的用户体验。 数据存储和外部 API 我们的服务器还需要存储数据。为此,我们还有一个外部存储服务器。...我们的服务器也可能与其他服务器进行 API 通信。我们可以拥有很多这样的服务,而不仅仅是一项。...现代实践是将这些警报直接集成到我们常用的平台中,例如 Slack、钉钉、飞书、企业微信等。 想象一下一个专用的 Slack 通道,一旦出现问题就会弹出警报。...这使得开发人员几乎可以立即采取行动,在问题升级之前解决根本原因。 生产中的调试 问题出现了后,开发人员必须调试解决该问题。 日志查找:首先,需要确定问题。我们之前谈到的那些日志?...修补程序:一旦修复了错误,就会推出“修补程序”。这是一个快速的临时修复,旨在让程序重新运行后,避免再次出现同一个问题。

    46210

    MCP 全解析:AI Agent 如何突破“工具困境”?一文带你掌握核心协议与实战部署指南

    对于AI来说,必须完成以下动作: 意图识别:明白这是邮件任务,而非Slack或Notion 工具调用:选择正确API,比如 search_email_messages 响应解析:找到内容 → 总结 →...✅ AI 专注“思考”,工具负责“执行” 模型只负责选择调用的工具,真正的执行逻辑、认证、API通信都由 MCP Server 处理。即使 Slack API 改了,模型逻辑不变。...连接 100+ 工具只需几步 使用场景:在 Cursor 中启用 MCP,实现 Gmail、Slack、YouTube 等服务连接。...服务器列表:https://mcp.composio.dev 优势包括: 无需自建登录系统 250+ 工具即插即用(Gmail、Slack、Notion、Linear…) 提供 2 万+ API actions...❌ 错误示例:AI 直接发送邮件 ❌ 缺乏统一安全标准 权限分配需手动配置 缺少通用 OAuth 2.1 实现 存在 Prompt Injection 风险 推荐阅读: Microsoft 安全指南 Pillar

    2.7K10

    想快速部署机器学习项目?来看看几大主流机器学习服务平台对比吧

    所以在订阅 Lex 服务之前,最好熟悉一下 Lambda 云环境。除了独立的应用程序之外,Lex 目前也支持在 Facebook Messenger,slack 和 Twilio 部署聊天机器人。...,对于查找特定的图像属性非常有用: 标记对象 检测人脸并分析表情 寻找标志性事件并描述现场(例如假期、婚礼等) 在图像中查找文本并识别语言 图像中的主色调 Cloud Video Intelligence...但是如果模型学习的过程需要在公司内部执行,计算能力的挑战迟早会出现。机器学习在大多数情况下需要很多计算能力。即使大数据时代已经来临,数据采样(收集数据集)仍然是一个重要的问题。...下一步 在如此多的选择下,很容易迷失在各种可用的解决方案中。它们在算法上有所不同,所需的技能也不同,所以最终处理任务的结果也会不同。 对于这个年轻的市场,这种情况是非常常见的。...即使是我们前面谈到的三个领先解决方案,也不是完全处于相互竞争状态。更重要的是,服务变化的速度常常出人意料。很可能当你坚持使用一个供应商的解决方案时,另一个供应商突然推出一些符合你业务需求的服务。

    5.3K170

    深入剖析Alertmanager:解锁告警管理的核心逻辑

    比如,在一个大型电商系统中,可能会有多个与订单处理相关的服务出现故障,如订单创建失败、订单支付异常等告警。...告警路由:Alertmanager支持根据告警的标签、内容等属性,将告警精准地路由到不同的接收器,如电子邮件、Slack、PagerDuty等。...分组后的告警信息会以更清晰、有条理的方式呈现给运维人员,便于他们进行统一处理。 之后,告警路由开始发挥作用。Alertmanager会根据告警的属性和配置的路由规则,将告警分发到相应的接收器。...例如,设置group_interval: 5m,当一个告警组在某一时刻发送了通知后,在接下来的5分钟内,即使该组有新的告警加入或状态发生变化,Alertmanager也不会立即发送更新通知。...在整个过程中,如果上下文ctx被取消,且存在未处理的错误iErr,则返回错误信息。

    1.1K10

    macOS红队攻防(二):利用DarwinOps DMG模板绕过Gatekeeper

    本文将重点聚焦在DMG文件及其模板的应用上。现在面临的核心问题是:如何让目标机器真正执行你的载荷?从0.9.4版本开始,DarwinOps也能帮你解决载荷投递的问题。...“硬”方法:依赖于存在漏洞的第三方(或原生)应用程序,我们可以利用这些漏洞更直接地绕过Gatekeeper。软性Gatekeeper绕过目标分析假设你已经摸清目标安装了Slack。...硬性Gatekeeper绕过如果你的目标仅仅是绕过Gatekeeper(例如,移除MOTW/隔离属性),DarwinOps也为此提供了特定模板。....当目标双击时,会弹出一个Gatekeeper弹窗(这是伪装的)——即使是一个经过公证的应用程序,出现弹窗也是正常的。绕过并非发生在此处。在上一篇文章中,我们了解到有几种不同类型的提示。...在macOS红队攻防第三篇教程中,我们将探讨如何利用存在漏洞的内部应用程序,创建一个特定的.dmg文件来提升权限,并仅通过简单的拖放操作实现持久化。

    11410

    如何使用Pwndora执行大规模IPv4扫描以及创建自己的IoT搜索引擎

    除此之外,广大研究人员还可以将该工具与Kibana集成以实现数据的可视化(操作),相当于在家中也可以拥有一个自己的物联网搜索引擎。 功能介绍 1、使用不同选项进行端口扫描,并检索软件标题信息。...5、在FTP服务器上检测匿名登录。 6、使用Slack API发送扫描结果通知。...工具下载&安装 首先,我们需要确保路径“$HOME/.local/share”存在,以避免Webtech出现问题。...仅扫描一个IPv4地址范围: python3 CLI.py -s 192.168.0.0 -e 192.168.0.255 -t 150 --top-ports 扫描多个IPv4地址范围(文本文件):...pwndora 参考资料 https://github.com/ShielderSec/webtech https://github.com/GoogleChrome/rendertron https://api.slack.com

    1K60

    五款 Slack 开源替代品

    对于Slack这样的团队协作明星产品来说,一旦套牢退市对于企业的开发团队来说无疑是巨大的风险。况且,Slack并非开源产品,对知识产权和敏感数据泄露的顾忌也会让很多创业公司和企业团队望而生畏。...技术 纯 JavaScript (NodeJS) GitHub 认证 Bonjour (multicast DNS),本地聊天 WebRTC 连接,使用 Hyperlog进行传播 优势 即使中央服务器宕机也可以继续通讯...Let’s Chat 是由 Security Compass 构建的,作为一个 10% time side-project,是最古老最流行的开源 Slack 替代品,在 GitHub 有着 7300 多的...Let’s Chat 是一个类似 Slack 的团队聊天软件,基于 Node.js 和 MongoDB 开发,易于发布,适合中小型团队,支持 LDAP/Kerberos 认证,提供 REST 风格 API...技术 后端使用 JavaScript(NodeJS) MongoDB 作为数据存储 前端使用 Backbone 优势 Hubot 支持 在 GitHub 有着庞大的社区 大量跟 Slack 相同的特性

    6.8K40

    缔造ToB SaaS的商业传奇,为什么是Slack?

    首先,企业能走到现在,不会是满身痛点了,否则早就经营不下去了;其次,最严重的痛点只能是个别问题企业的,解决个体问题对产品没有意义;最后,即使存在共同的痛点,你产品也未必解决的了;亦或是所有产品都能解决的...在一个Backdrop下可能找不到痛点,但一定存在着一些“麻烦”(Troublesome);而这些麻烦,用户可能并未意识到,比如过去的手机都是按键式的,直到苹果触屏手机的出现。...Slack网站首页的Slogan:无论你做什么工作,你都可以在Slack中完成,事实也的确如此。...所谓的平台也更像是个卖场或商城,有关无关的东西都放上来。即使货不全也得在这里买,特别是不少应用的边界有重叠,这不能给客户提供任何的方便,还产生选择困难。...营销:于无声处的激发力 好的需求是创造出来的,并非用户通过常识就能轻易发现。激发力是商业设计中至关重要的一环;在激发力的驱使下,让客户本源需求迅速变为你创造的需求。

    1K41
    领券