【问题标题】:How do applications know how return the data an API requested?应用程序如何知道如何返回 API 请求的数据?
【发布时间】:2020-12-30 04:32:59
【问题描述】:

假设我创建了 Twilio。下面是他们的警报 API

https://www.twilio.com/docs/usage/monitor-alert:

https://www.twilio.com/docs/python/install下载帮助库

import os
from twilio.rest import Client

来自 twilio.com/console 的帐户 Sid 和身份验证令牌 并设置环境变量。见http://twil.io/secure

account_sid = os.environ['TWILIO_ACCOUNT_SID']
auth_token = os.environ['TWILIO_AUTH_TOKEN']
client = Client(account_sid, auth_token)

alert = client.monitor.alerts('NOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch()

print(alert.alert_text)

JSON API 响应示例:

{
  "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "alert_text": "alert_text",
  "api_version": "2010-04-01",
  "date_created": "2015-07-30T20:00:00Z",
  "date_generated": "2015-07-30T20:00:00Z",
  "date_updated": "2015-07-30T20:00:00Z",
  "error_code": "error_code",
  "log_level": "log_level",
  "more_info": "more_info",
  "request_method": "GET",
  "request_url": "http://www.example.com",
  "request_variables": "request_variables",
  "resource_sid": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "response_body": "response_body",
  "response_headers": "response_headers",
  "request_headers": "request_headers",
  "sid": "NOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "url": "https://monitor.twilio.com/v1/Alerts/NOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "service_sid": "PNe2cd757cd5257b0217a447933a0290d2"
}

应用程序如何返回上面的数据?它怎么知道返回上面的数据?

你是否必须用上面的数据创建一个对象来响应所说的 API 调用> 程序员是否需要编写一个特殊的函数,如果他们不想为应用程序提供 API 访问,他们通常不会创建,响应返回数据的api调用?

例如,如果我有一个网站可以让人们将他们的名字和姓氏输入到数据库中。然后我需要编写一个程序,该程序利用一些插入名称的函数。如果我想创建一个 API 让其他人从数据库中检索名称,我需要创建另一个函数,如果我没有 API,我不会创建该函数来检索 API 调用的名称。或者我会创建一个 API 调用,该调用将向某个函数发出请求,该函数将返回一个对象,其中包含我所说的 API 调用将返回的所有数据;或者该函数会四处搜索数据创建一个对象,然后将信息返回给调用者。

【问题讨论】:

  • 应用程序什么都不知道。应用程序的开发人员阅读 API(或使用的特定函数)的规范,并确定如何编写代码以便应用程序提供所需的数据。
  • 如果我的calculator.com 有一个外部API 允许Twilio 用户添加。进行了外部 API 调用以添加用户,同时在网站上添加了用户。 calculator.com 如何知道将正确的输出返回给外部 API,使 Twilio 用户能够添加,calculator.com 用户也可以这样做。当 Twilio 用户和 calc.com 用户使用相同的 add 函数时,具有相同的参数,并且在同一时间,calculator.com 如何知道?
  • 如果我的calculator.com 有一个外部API 允许Twilio 用户添加。一个 Twilio 用户调用了一个 API 来添加,同时在calculator.com 上一个用户添加了。当 Twilio 用户和 calc.com 用户使用相同的 add 函数、具有相同的参数并且在完全相同的时间时,calculator.com 如何知道将正确的输出返回给每个用户?
  • 您需要努力了解“接口”(API 中的“我”)实际上是什么。你在证明你不理解它。
  • 您可以退回任何您想要的东西。它可以是数据库行的 1:1 表示。它可以是静态文本。它可以是磁盘上的静态文件。它可以是随机数据。您可能会使用对象,也可能根本没有任何对象。首先尝试编写一个 hello world 网络服务器。然后让它返回一个 JSON 的东西。然后从数据库中返回一些东西。小步骤。假装 Twilio 几天不存在。

标签: json python-3.x api


【解决方案1】:

有人写的。或者也许他们编写了编写它的代码。

但可能有人至少在一次迭代中编写了它;但现在一切都被翻译、编译和解释了,有什么区别。

一些最好的外部 API 服务是从内部 API 演变而来的;像 AWS。

困难的部分不是将 API 组合在一起,而是对其进行测试,以确保其强大、安全以及隐私能力足够强大。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    相关资源
    最近更新 更多