一键总结音视频内容

Attention is All you Need

初学者API 2023-如何使用API(完整课程_教程) 👨‍🏫

本课程是针对初学者的 API 精彩介绍。这是已经存在的版本之一的更新版本,是互联网上最流行的 API 课程之一。

讲师介绍

  • 你好,我是克雷格,我是一名开发人员。在本课程中,我们将探索 API 或应用程序编程接口。

课程内容

我们将从头开始,所以我真的没有太多希望您在开始本课程之前了解。我想请求你有一定的编码经验以及一点点关于网络的知识。如果你写过任何程序,即使是典型的第一个程序,你已经为这门课程做好了充分的准备。

学习环境

如果您还没有满足这些要求,请检查该视频附带的注释,了解从哪里开始具有一些网络和编程入门概念。你应该花点时间适应你的学习环境。

课程更新

这是2019年课程的更新,现在看来,这似乎是大约 30 年前的事了。如果您看到该版本,欢迎回来。技术在不断发展和更新,笔记没有删减,所以这是第二版。感谢您的所有反馈,你和你的同学的很多建议都在这个新的更新版本中实现。

学习建议

最好的学习方法是专注于每个单独的字母。对于API,我们应该从最后一个字符,I,界面开始。接口就在我们身边。例如,这里的这个收音机,它有一个熟悉的界面。该界面允许我执行诸如更改音量之类的操作,更改电台,我可以将其关闭和打开。

结语

API,那三个小字母引起很大的轰动,不是吗?首先,我想提前花一些时间并清楚地分解其含义通过应用程序编程接口。通过了解其目的并了解其历史,我想你会开始看到它的重要性并开始了解为什么这个词不断出现在你的生活中。让我们开始吧。


初学者API 2023 - 如何使用API(完整课程_教程)

创建应用程序所需的接口

大多数应用程序为了实现交互功能,如显示按钮,通常会依赖于预先创建并提供的接口。这些接口旨在供开发人员或应用程序员使用,通过实现特定的界面元素,如按钮,使开发人员能够在用户点击按钮时执行相应的代码。

媒体播放器 API 抽象化细节

在某些场景中,比如在 Android 或 iOS 设备上构建应用,会涉及媒体播放器 API。这个 API 抽象了如何将音频数据准确有效地发送给设备硬件这一复杂的底层过程。开发者仅需了解如何调用 API 中的播放方法,无需深入了解硬件层面的工作原理。

互联网与 API 通信

当歌曲不在设备本地存储而是通过网络流媒体传输时,应用程序通常会通过互联网 API 调用来获取所需的数据。这表明,在多个层级上,API 为我们提供了便捷的通信方式,从 API 调用直到网络服务端的连接。

API 层次结构与抽象

各个 API 间的共性在于它们定义了我们与对象(无论是物理还是软件形式)进行互动的方式,为用户提供简洁易懂的接口,而不必让他们深入了解其内部实现细节。通过这种方式,开发者只需关注自己有权操作的功能,如修改某个属性或调用特定方法。

掌握 RESTful API 概念

API 简介

  • API 作为一种契约:API 定义了预期的使用方式,即开发者如何正确使用 API 来接收所需的结果,而不必关心具体实现细节。

  • API 视作工具集合:API 可视作一套精心设计的工具,针对软件开发者提供使用便利,从而简化开发流程,比如快速实现文字转大写功能。

  • API 提供文件系统抽象:不同的操作系统拥有各自的文件管理方式,但编程语言通过统一的 API 为开发者屏蔽差异,以便在各种环境下编写通用的文件处理脚本。

  • Web API 与普及性:尽管 API 通常指代 web-based API,但在广泛范围内,包括非 web 类型的 API,它们都在各行各业的软件开发中发挥重要作用。

浏览器 API 示例

不同类型的 API 包括本地环境和跨平台兼容的 Web API。以浏览器为例,网络浏览器必须遵循一套共同的 Web API,以确保编写好的 web 应用程序能在各种主流浏览器(如 Google Chrome、Microsoft Edge、Safari、Firefox 和 Brave)之间互适配。

API 实施与版权问题

API 的版权归属问题并非直接相关于其接口本身,而主要集中在实现层面。语言本身的 API 不可受版权保护,例如编程语言提供文件系统操作的 API 就不受限制。然而,在实际项目中,第三方库作者和维护者的贡献往往包含在 API 实现中,这部分内容确实受到版权保护。

  • 示例:版权法视角下的 API 实现争议:历史上有过法庭案例指出 API 实现并不受版权保护,查阅额外资料可了解更多详情。

  • 浏览器 API 兼容性:为保证网页在不同浏览器中的正常显示,开发者利用浏览器共享的 Web API 实现网页功能,如动态生成内容并传送到预设模板,最终只需少量代码即可达成目标。

  • API 使用与扩展:框架提供的 API 让开发者得以扩展既有的功能,将自己的创意融入其中,进一步拓展框架所提供的能力,使之符合自身项目的独特需求。

综上所述,API 在软件开发过程中扮演着至关重要的角色,不仅帮助开发者避免重复劳动,还能为他们创造高效便捷的解决方案。适当理解和掌握 API 技巧,无疑是每一位开发者通往成功之路的关键。


初学者API 2023-如何使用API(完整课程_教程)

📜 远程API的好处

手机,看见了吗? (无人机嗡嗡作响并坠毁) (无人机嗡嗡作响并坠毁) 这不仅仅是物理对象 And it's not just physical objects 受益于远程 API。 that benefit from remote APIs. 通常我们的本地机器上没有空间 Oftentimes we don't have space on our local machines 对于所有可用的数据,例如, for all the data that's available, like for example, 您曾经使用过其中一个应用程序吗 have you ever used one of those apps 这可以帮助您找出正在播放的歌曲吗? that helps you figure out what song is playing? 您发送了您听到播放的歌曲的片段 You send up a snippet of a song that you heard playing 在杂货店使用麦克风, at a grocery store using your microphone, 它会准确地发回这首歌。 and it sends back exactly what song it is. 通常是菲尔·柯林斯。 It's usually Phil Collins. 事实证明,两家杂货店 It turns out that both grocery stores 你真的很喜欢菲尔·柯林斯。 and yours truly love Phil Collins. 您没有空间容纳所有歌曲 You don't have room for all the songs in 通过手机上的远程API 即可了解世界, the world on your phone and with this remote API, 你不需要拥有所有这些。 you don't need to have all of them. 它完成所有搜索和处理 It does all the searching and processing 而且速度快得惊人。 and it's surprisingly quick. 它怎么可能这么做? How can it possibly do that? 我不知道,但我喜欢这个界面。太快了。 I don't know, but I love the interface. It's so fast. 呵呵,这又是一个好处 Ooh, that's another benefit 远程 API、计算能力。 of remote APIs, computational power. 因为API消除了本地设备的限制, Because an API removes the limitations of your local device, 你可以获得看似无限的力量。 you can gain access to seemingly infinite amounts of power. 谷歌翻译的 AR 应用程序就是一个很好的例子。 A good example of this is the AR app of Google Translate. 您可以使用手机上的相机 You can use the camera on your phone 并且能够近乎实时地直接翻译 and in near real time it's able to translate directly 立即到您的屏幕上。 to your screen, like instantaneously. 它使用大量的处理能力 It's using a ton of processing power 使这种魔法发生并进行处理 to make that magic happen and that processing 正在其他地方发生,“en la Nube”。 is happening elsewhere, "en la Nube." 花了相当多的实验 It took quite a bit of experimentation 以及一些想法的演变,但随着时间的推移, and some evolution of ideas, but over time, 我们终于将这个远程 API梦想变成了现实。 we finally turned this remote API dream into a reality. 现在,我要把一些历史记入老师的笔记中, Now, I'm gonna drop some history into the teacher's notes, 但我只是想让你知道斗争 but I just want you to know that the struggle 实现远程 API 的这一概念是非常真实的。 to achieve this concept of remote APIs was very real.

REST风格的API

现在,最重要的问题是 Now, most of the problem was that 没有一个人人都喜欢的标准。 there wasn't a standard that everyone loved. 有一段时间事情变得相当笨拙 Things were pretty clunky for a while as 这些想法已经被提出来了,但随后它就发生了。 these ideas were sussed out, but then it happened. 出现了一种清晰的新建筑风格 A new architectural style appeared that was clear 并允许我们开发人员进行互动 and allowed us developers to interact 通过网络获取特定资源 with specific resources over the web 它确实改变了一切。 and it quite literally changed everything. 这种风格迅速成为赢家 This style rapidly emerged as a winner 几乎每个人都开始提供 and just about everyone began offering 并通过互联网使用外部 API。 and consuming external APIs over the internet. 现在,我在这里谈论的是休息, Now, what I'm talking about here is REST, 或代表性状态转移。 or representational state transfer. 老实说,这是我们需要的方法, It was the approach that we needed and honestly, 这是我们开发人员应得的抽象。 it's the abstraction that we developers deserved. 正如我们已经讨论过的,REST 的流行正在蔓延 Like we talked about already, the popularity of REST spread 如此之快以至于它几乎完全取代了 API 一词。 so rapidly that it nearly completely overtook the term API. 就像我们用 Xerox 这个词来表示复印一样, It's like how we use the word Xerox to mean photocopy, 尽管施乐只是复印机的一个品牌。 even though Xerox is just a brand of photocopier. 我认为施乐还做其他事情。 Xerox does other stuff too, I think. 这就是 REST 的普遍性。 That's how pervasive REST is. REST 肯定不是全部,而是远程 API 的全部。 REST is for sure not the end all, be all of remote APIs. 肯定有一些限制 There are definitely some limitations 我们稍后会在这里讨论。 which we'll discuss here in a bit. 技术在不断发展,当然 Technology's ever evolving and of course 还有一些运动仍在推进 there's movements that are still advancing 最佳远程 API 的概念。 the concept of the best remote APIs. 您甚至可能听说过一些术语,例如 GraphQL, Some terms you might even have heard, like GraphQL, 老师的笔记中有更多相关内容。 more on this in the teacher's notes. 现在,对于本课程的其余部分,我们将要做 Now, for the rest of this course, we are going to do 深入研究使用 REST 风格编写的 API。 a deep dive into APIs that are written using the REST style. 当 API 接受 REST 的风格和约束时, When APIs embrace the style and constraints of REST, 据说他们很安静,很可爱,对吗? they are said to be RESTful, cute, right? 如果你觉得需要休息一下 If you feel like you need a little rest, 在我们进行更深入的探讨之前,请先让我暂停一下 go ahead and pause me before we do a deeper dive 了解什么是“RESTful”。 into what it means to be RESTful. 抱歉,这是一个糟糕而明显的笑话, Sorry, that was a bad and obvious joke, 但作为一名开发人员,你必须做到这一点。 but as a developer you kind of have to make it. 你真的没有选择。 You don't really have an option. 因为 REST 位于Web 技术之上 Because REST sits on top of web technologies 就像一顶非常漂亮的帽子,我们应该 like a really nice hat, we should probably 快速回顾一下网络的运作方式。 do a whirlwind refresher of how the web works. (欢快的音乐) (upbeat music) 可能已经有一段时间了 It might have been a while since 你考虑过网络是如何运作的。 you thought about how the web works. 有一些我想要的术语 There are a smattering of terms that I'd like 之前重新加载到您的工作记忆中 to reload into your working memory before 我们更多地讨论 REST 如何使用它们。 we talk more about how REST uses them. 那么让我们使用网络吧,我的电脑就在这儿 So let's use the web, I've got my computer here and on it 是一个互联网浏览器,该浏览器是一个网络客户端 is an internet browser, the browser is a web client 我将用它来连接到服务器。 and I'm going to use it to connect to a server. 我将通过放置来做到这一点 I'm going to do this by putting 地址栏中的某个位置, a location in the address bar, 准确地说,是通用资源定位器或 URL。 a universal resource locator or URL to be exact. 您可能还听到过提到这一点 You might also hear this referred to by 它的超集术语 URI,通用资源标识符。 its superset term URI, universal Resource Identifier. 现在我们的 URL 有一个 schema 部分 Now our URL here has a scheme portion 而这个恰好是 HTTP。 and this one happens to be HTTP. HTTP 代表超文本传输协议。 HTTP stands for hypertext transfer protocol. 让我们稍微分解一下。 Let's break that down a bit. 让我们来看看最后一部分,协议。 Let's grab that last part, protocol. 协议也经常被比作合同。 A protocol is also often likened to a contract. 它比 API 级别低一点, It's a little lower level than an API, 但在概念上是相似的。 but it's similar in concept. 你可以将其视为定义 You can think of it as defining 对如何沟通的期望。 the expectations of how to communicate. 就像一个我认为很贴切的例子 Like an example that I think really sticks 和我在一起就是如果你曾经参加过集会 with me is if you've ever been to a rally 有人唱了一首这样的歌 and someone does one of those chants where 他们就像是,“当我说‘Fu’时,你说‘Bar’。” they're like, "When I say 'Fu,' you say "Bar." 福吧,其中之一。来,我们来做一个。 Fu, bar, one of those. Here, let's do one. 当我说 HTT 时,你说 P、HTT、HTT。 When I say HTT, you say P, HTT, HTT. 哦,我刚刚意识到我可能让你大声喊“P”。 Oh, I just realized I might have made you yell "P" out loud. 希望你不在咖啡店。尴尬的。 Hope you aren't in a coffee shop. Awkward. 不管怎样,我们、你和我刚刚建立了一个真正的快速协议。 Anyways, we, you and I just set up a real quick protocol. 我告诉过你如何回应我的具体要求 I told you how to respond to my specific request 你可能会违反或同意协议 and you would've been breaking or agreed upon protocol 如果你大喊除 P 之外的任何其他内容,那么浏览器 if you yelled anything else but P, so the browser 为您创建一个 HTTP请求以及 URI, creates an HTTP request for you, along with the URI, 它还指定一个特定的 HTTP 动词。 it also specifies a particular HTTP verb. 在本例中,它使用 get动词,该动词使用 In this case, it is using the get verb, which is used 澄清该请求只会接收数据。 to clarify that this request will only receive data. 也就是说,它不会做出任何改变。 That is, it won't be making any changes. 服务器收到请求 The server receives the request 这是从客户端转移的。 that was transferred from the client. 还有第二个T。 There's that second T. 然后服务器执行它需要执行的工作。 The server then does the work that it needs to do. 最后,它生成结果网页 Finally, it generates the resulting webpage 并向客户端发送回响应, and sends back a response to the client, 在这种情况下,我的浏览器。 my browser, in this case. 响应中最重要的部分是正文。 The most important part of the response is the body. 对于一个网页,包含 For a webpage, that contains HTML,超文本标记语言, the HTML, hypertext markup language, 这给了我们剩下的部分,即我们的缩写词 HT。 which gives us the remaining parts, the HT of our acronym. 超文本是可以链接到其他文本的文本。 Hypertext is text that can link to other texts. 在 HTML 中,我们使用锚标记执行链接, In HTML, we perform that linking with anchor tags, 因此,通过该响应,浏览器将呈现页面。 so with that response, the browser renders the page. 当点击其中一个链接时, When one of those links are clicked, 他们启动一个全新的 HTTP get 请求 they kick off a brand new HTTP get request 这个过程一遍又一遍地重复。 and the process repeats itself over and over. 不过,在这些点击之间,协议就完成了, In between those clicks though, the protocol's done, 我们已经提出了请求,我们得到了答复。 we've made the request, we got the response. HTTP,正如它最初设计的那样, HTTP, as it was originally designed, 是一个无状态协议。 is a stateless protocol. 一旦该请求收到响应,一切就完成了。 Once that request receives a response, it's all done. 如果你想保持某种状态,你的客户将会有 If you wanna keep some sort of state, your client will have 自行管理并随每个新请求一起发送。 to manage that itself and send it up with each new request. 查看注释以获取更多相关信息。 Check out the notes for more on this. 还有更多的http动词,也称为请求方法 There are more http verbs, also known as request methods 除了 get 之外,您看到的最常见的情况是当您 besides get, most common scenario you see is when you 遇到一个用于从您那里获取信息的表格。 encounter a form that is used to take information from you. 通常您会看到用于解释的动词 post Typically you'll see the verb post used to explain 您正在向服务器提交或发布数据。 that you are submitting or posting data to the server. 好的,我们用于传输的协议 Okay, so our protocol that's used to transfer 这个超文本确实有点 this hypertext is admittedly a little 比我们的集会口号更复杂。 more complex than our rally chant was. 里面有不少重要的信息 There's quite a bit of important information in there 包含在请求和响应中。 that is included in the request and the response. 您可能在 URL 中见过查询字符串参数 You've probably seen query string parameters in URLs 你知道问号后面的内容吗? and you know the stuff after the question mark? 这是传递有关请求的信息的一种方法。 This is one way to pass information about the request. 此信息传递的另一种常见方式 Another common way this information is passed around 是通过称为标头的特定键和值对。 is through specific key and value pairs called headers. 请求和响应都有标头 Both requests and responses have headers 它们被用来帮助进一步沟通 and they're used to help further communicate 想要什么以及已退回什么。 what is wanted as well as what has been sent back. 一些流行的请求标头允许您指定 Some of the popular request headers allow you to specify


初学者API 2023-如何使用API(完整课程_教程)

信息传达

API可以传达一些信息,比如缺失的文件。你可能见过旧的404页面或者页面已经移动,但希望一切顺利200 OK。它还可以解释内容类型,返回的数据有多大,等等。

RESTful API

REST代表代表性状态转移。符合REST架构的API样式约束被认为是RESTful。RESTful API使用了网络引入的概念,公开可以访问和操作的资源。

RESTful约束

RESTful API遵循客户端服务器架构和无状态的约束。资源可以用URL或URI中的R来表示,可以用来描述我们构建的任何东西。大部分操作可以通过CRUD(创建、读取、更新和删除)来实现。

HTTP方法

RESTful API使用HTTP方法来创建、请求、更新和删除。您可以与任何公开其REST API的应用程序进行交互,获取数据,远程自动化任务,甚至将不同的服务融合在一起。

探索RESTful API

您可以尝试使用一些REST API,比如流媒体音乐服务Spotify的API。它允许您在自己的网络浏览器中进行尝试,可以与其他服务进行混搭,实现令人难以置信的事情。

结语

RESTful API提供了丰富的可能性,您可以建造任何您想要的东西。让我们一起探索RESTful API,看看您能够构建什么。


初学者API 2023-如何使用API(完整课程_教程)

🎤 观看节拍一样 你可以使用API来查看节拍 以及截面和钢筋。 我认为有一种方法可以解决 歌曲是否适合跳舞。 所以也许我可以引进舞蹈。我们拭目以待。

🎤 探索API

如果我向上滚动到此处的顶部, 你会看到有这些不同的标题。 我们有了这个 Discover,我认为这很棒 如果你想探索一些东西,我们有这个文档, 你会发现实际上有各种不同的类型 API和SDK,软件开发包,也就是API, 这让你可以做不同的事情。

🎤 Web API

我们将重点关注Web API。 所以如果我点击那个, 我们将对这是什么有一个很好的概述。 我要把它炸毁一点。 所以你会看到基于一些简单的休息, 代表性状态转移原则, 这就是我们正在做的事情,这就是我们正在经历的事情。 我们正在进行寻宝游戏。 我们正在经历这个过程。

🎤 Spotify WebAPI

有一个 Spotify WebAPI 返回 JSON, JavaScript 对象表示法 音乐、艺术家、专辑和曲目,对吗? 所以这太棒了。那太棒了。 所以我们可以看到各种不同的东西。 它在这个 api.spotify.com 上打开是 具体的URL然后它有一个集合 每个独特路径的端点,对吗? 我们之前查看过的每个 URL, 有一种方法可以获取特定数据。 所以你可以在你授权的地方做这件事。 所以,我可以成为一个用户, 你可以看看我最近听的内容。 我可以有一个播放列表,我可以添加到其中。 但为了做到这一点,你需要 获得授权才能这样做。 你不想只添加 到任何人的播放列表,对吧? 所以有一些可用的授权 我们不会在这里做任何需要这样做的事情。 所以如果你继续往下看, 你会看到它是基于 那些 REST 原则,你会发现 它确实可以检索资源,对吧? 还有创建资源的帖子,再说一次, 这里的资源是歌曲、艺术家和曲目。 也许您在这里创建的资源是一个 我们讨论过的那些播放列表。 您可以使用 put 进行更改 删除将删除该资源。 太棒了,对吧?所以它就像我们看到的那样使用 REST。 您将看到 Spotify 使用此 URI 样式。 所以这是一首 Spotify 曲目,然后它 有这个唯一的 ID,这个 Spotify ID。 当我们深入研究时,这会更有意义 再多一点,然后你就会发现总会有 这个 Spotify URL 可让您查看它是什么。 它也会向您展示这一点。 正如我们所说,响应回来了 它们是一个 JSON 对象,我们要查找 未来有一个名为 Curl 的工具, 您可以从命令行使用它。 这就是这里的美元符号所说的。 我会向你展示这一切,但基本上是说 有很多艺术家回来了。 你不需要所有的艺术家都在里面,它会 回来分页,当然,你可以使用缓存。 我们将在这里看看, 你可以看看事情是否改变了。 所以我们会看看这个以及基本上的反应 如果一切顺利的话就会回来 它会说 200 或这些,这些200 级帐户。 然后还有不好的请求。 所以如果你问错了或者可能没有找到, 如果我们尝试这样做,那就是404 或未经授权 在这些播放列表中,我们得到了未经授权的 如果你是一名开发人员, 你永远不想看到这个,它是 500。 这意味着您在服务器端犯了错误。 我们不会做任何这些因为 我们只是要敲别人的代码。 很酷,好吧,Spotify 提供了以下功能: 你可以看看这个,你可以构建自己的 卷曲请求,但真正好的事情之一 我喜欢他们的 API,你会发现 如果我们向后滚动到这里,这种情况经常发生 到山顶,抱歉,如果我让你生病了, 我们要跳到这里所谓的控制台。 左边是我们可以做的事情 他们的 API 和我想要的东西之一 首先我要搜索,你可以看到 它正在访问搜索端点。 所以我要进入那里,那里真的很好 是这样设置的,以便我们可以善待 构建我们正在寻找的查询。 所以现在我们需要决定我们要做什么。 我想可能是我第一个会想到的人 曾经搜索过,我会搜索的第一个艺术家。 你可以看到这里显示的是 那是什么的不同价值观。 我可能会寻找碧昂丝。 我的意思是,对吧,你不是吗? 我可以选择,这是一首曲目还是一位艺术家? 所以那里的类型很重要,如果我输入艺术家, 你会看到正在发生的事情你会看到 这里的卷曲正在改变,它正在改变, 它说线索是碧昂丝。 这就是参数之一 我们正在传递 API,艺术家就在这里。 你可以看到有不同的东西 我们可以在这里做。 真正重要的是它 需要有此 OAuth 令牌。 现在很好的是我们可以建造其中之一 即使我们没有 Spotify 帐户。 所以我要这么做。 我要点击这个获取令牌, 我当前尚未登录,实际上也没有登录 该用户尚有 Spotify 帐户。 我有一个 Spotify 帐户。我喜欢 Spotify。 这基本上是在问你会做什么 您将创建一个特定的 OAuth 令牌。 如果您曾经在外面使用过这个 API 我们现在正在做这件事的地方 您将创建这些令牌之一,以便您可以 稍后登录,然后说出您想要什么。 这是播放列表,对吧? 我们不会,我们不会做任何播放列表的事情, 我们只是要做一个搜索。 也许我们会查一些碧昂丝的歌曲,但是, 所以我要去点击这个请求令牌。 所以现在它要求我登录 使用我的 Spotify 帐户,我可以, 或者我可以创建一个新的,让我们来看看 以防万一您还没有Spotify 帐户。 让我们创建一个新的。 这将在我的开发者帐户中。 所以我要输入我的电子邮件。 所以我的电子邮件,我不知道你是否知道这一点, 但如果你使用 Gmail,你可以做一个小加号 它仍然会发送到您 Gmail 的左侧。 所以我要在 Spotify 上注册,然后这样 我从这里收到的任何电子邮件都会有这个内容。 这是一种让您拥有多个帐户的方式。 我想,我的 Gmail 是 craigsdennis@gmail.com, 但我会做 SpotifySignup@gmail.com 它将发送到我的 Gmail。 它会忽略这一点,Gmail会为您做到这一点。 非常好,对吧? 所以我要输入与我的行李相同的密码 这是 1, 2, 3, 4, 5, 6,开玩笑的。 我们应该怎么称呼你呢? 哦,你知道吗? 我喜欢你叫我大爸爸 这将出现在我的个人资料中,我已经准备好了。 让我们看看,2019 年11 月 19 日是我的生日。 让我们看看我怎么想 如果我是1999年出生该多好啊? 你的性别是什么?哦,这很好。 多好。这就像超级包容。 我喜欢这种包容性。 就像无论你坐在哪里我都爱你并向你致敬 Spotify 具有包容性,因为包容性很重要。 分享我的注册数据。 当然可以,为什么不呢?我不是机器人。 我不认为我是。哦,哦不。 与自行车的图像。那个人有一辆自行车。 那个人有一辆自行车。那个人有一辆自行车。 哦,那是什么垃圾? 是吗?


初学者API 2023-如何使用API(完整课程_教程) 💻

垃圾?

是吗,这是自行车道。这是一辆自行车。

注册

好的,我们开始吧。好吧,我不是机器人。

点击“注册”

谢谢。好吧,我要点击“注册”。

保存登录信息

好吧,我要保存登录信息,然后用它登录。

令牌

现在你会注意到这里有这个令牌,对吗?这是创建的 OAuth 令牌。

保护令牌

现在你永远不想让你的令牌出去。如果你抓住了,就会有人代表你做一些事情。

搜索碧昂丝

我们要寻找碧昂丝,让我们看看发生了什么。

返回结果

所以您会看到我们返回了一些信息。我们得到了一份艺术家名单,因为这就是我寻找的类型。

艺术家信息

我们会看到一些外部 URL,我们认为这可能就是她。

专辑信息

我们会看到一些外部 URL,我们认为这可能就是她。

缓存

这些结果绝对是可缓存的,客户端也可以使用缓存功能。

构建应用

你可以访问 Spotify 的所有音乐库,你可以构建扩展其平台的工具。

休息时间

让我们更深入地研究并利用使用我们自己的工具开发 API,很快再见。

Curl命令

有一些例子使用了名为 Curl 的命令,它在您的计算机上本地运行,对于研究 API 来说非常棒。


API 初学者 2023 - 如何使用 API(完整课程


初学者API 2023-如何使用API(完整课程_教程) 💻

解析信息

有时候信息很难看懂,对吧?所以,我们可以选择将信息通过管道传输到名为 JQ 的工具中,这样信息就会变得更加清晰易读了。

查询语言

我们可以使用一些查询语言来提取我们感兴趣的信息,比如只提取每一项的名字。

使用Curl探索API

Curl是一个非常好的探索API的工具,它可以帮助我们了解API的工作原理。

Twilio API

Twilio是一家热爱API的公司,他们提供了一整套产品,包括短信、电话、邮件等通讯服务的API。它是一个非常强大的工具,可以帮助我们构建各种应用。

注册Twilio账户

我们可以通过Twilio的免费试用账户来体验他们的API,只需要填写一些基本信息就可以开始使用了。

使用SMS产品

我们将使用Twilio的短信产品来构建我们的应用,这将是一个很有趣的过程。


初学者API 2023-如何使用API(完整课程_教程)

👩🏻‍🏫 建造新东西

我们要建造一些别的东西,如何使用 Twilio 和代码进行构建,对吧?如果我们愿意的话我们最终会编写代码,在代码示例之上使用最少的代码或根本没有代码。所以,绝对不需要在这里构建代码,但我会用代码来表达,因为我们是这里的开发人员。

👩🏻‍💻 首选编码语言

您首选的编码语言是什么?即使不是,我们也会做 JavaScript,我们将在本课程的其余部分中学习 JavaScript。我确实想在 Twilio 上托管我的代码,这很好。有一个不错的无服务器选项。

📱 获取Twilio电话号码

我们想要做的第一件事是获得Twilio电话号码。我要点击“获取 Twilio电话号码”。

🔒 限制和解决方案

我的账号被限制了,因为它认为我可能是垃圾邮件。如果这种事发生在你身上,请不要感到被冒犯或类似的事情。我要你检查一下笔记了解解决此问题的最新方法。

📞 Twilio电话号码

我成功获取了Twilio电话号码,(561) 816-5433。现在这个号码是我的了,这太棒了。我可以使用这个消息,我可以发送消息,我可以接收消息,我可以用这个做各种各样的事情。我可以拨打电话,也可以接听电话。

📧 发送电子邮件

我发送了电子邮件至compliancereview@twilio.com,我应该启动并运行它。如果您遇到这种情况,请继续,按“暂停”,检查此处的注释以了解该怎么做。

📱 发送短信服务

在我们开始之前,我想确保你知道这些东西。您使用的是试用帐户,所以有一些限制。您只能发送消息并拨打经过验证的电话号码。

📋 API参考

我们要通过短信来到这里,因为这就是我们正在做的事情。在API参考中,我们想要做的API是我们希望能够发送自,我们想通过电话号码表示我们刚刚收到并且想要发送给我的电话号码发消息。

💻 Curl文档

我们要跳到这里Curl文档有这个真的很好,我可以实际复制这个。所以我要点击复制这个,我将前往我的终端。现在,我再次在Mac上运行。所以这里有一些假设一切都会好起来的,因为我在Mac上运行。

🔑 Twilio帐户SID和身份验证令牌

我要继续,我要单击此复制按钮。所以我复制了它,我要回到这里,我要移动我的鼠标,我要删除此处显示帐户SID的位置。这就是字符串标识符。


初学者API 2023-如何使用API(完整课程_教程)

👩🏽‍🏫 字符串标识符

这就是 Twilio 识别我是谁的方式。我将回顾其余的内容。如果你在 Windows 上观看这里,让我们继续吧,让我们摆脱这些新线路在这里。所以我要把它们全部放在一行上,我们可以处理这个问题,我们会这么做的。所以我要摆脱那条线,这样它将在两个 Windows 上完全运行和 Mac 来完成我们正在尝试做的事情。所以我这里仍然有我的帐户SID,所以我会继续支持这里。我要去掉那条线,就这样。你还会在这里再次见到,这是 Twilio 帐户 SID,我帐户的字符串标识符仍然存在。所以我要把它粘贴到那里。所以现在我正在做的 API 调用是该特定帐户,是由于此消息所致。你会注意到它正在做,现在它正在发帖子。因为我们正在创造新的东西,对吗?所以我们使用 post 来创建消息。你会在这里看到它说来自 equals,以及实际来自的号码,我们想要那个是我们刚刚得到的 Twilio 号码,对吗?所以我们刚刚得到的新的,我们会说这是发送自,让我回去,我要复制我的 Twilio 电话号码,对吧?所以我有我的 561 号码,我会把它粘贴在这里。所以你知道,加上 561,这是一个美国号码。所以它被称为 10 位长代码,10 DLC。所 (561)-816-5433 是我刚刚购买的号码。我们会默认说,“嗨,”邮件正文,对吗?所以我们,而不那样,无论我们要做什么,并注意这一切都在引号中。我们会说,“嘿,世界。”我不知道你是否知道这一点,但第一个词,我们过去接电话的方式是电话响了,你会说,“嘿?”另一边会说,“嘿嘿。”所以我们很喜欢在这里这样做,在 Twilio,我们说“哎呀世界”。这有点像这个你好世界。所以消息的正文,我们要处理的文本得到会说“啊嘿世界”然后我们会发送,我会把它发送到我的电话号码。这是您验证过的数字之一当您创建帐户时,您已验证您有号码。所以我的电话号码是 (432)-527-4274。请不要在深夜发短信,然后我们这里的最后一件事是这个身份验证令牌。这是一个非常私密的密钥,对吧?我们不希望任何人有权访问。这就像我们拥有的 Spotify 代币,对吧?我们永远不希望任何人拥有它。我会,我相信你,我会继续我会把它粘贴到这里,这样我们就可以得到它。所以这是你永远不想要的东西放出去,因为现在你可以看到这个在我的屏幕上,你可以使用这个,对吗?你可能不希望任何人这样做。所以你永远不想真正说出这个数字。你想隐藏这一点,我们会谈谈关于将来如何在这里做更多的事情。但现在我只想告诉你,我们将使用 Curl,我们将创建,我们将在这里向此 URL 发送帖子你会注意到它以 JSON 结尾。这就是我们要回来的。这是它的工作原理。这是我的账户,我的账户 SID,你看它是从这个 AC 开始的我们将使用此数据 URL 编码进行发布。所以 Twilio API 的工作方式是一些参数,它需要来自身体和你在 curl 中传递这些的方式是使用这个 --data URL 编码,你就可以通过您想在这里了解什么。所以我们要,如果这一切都有效的话,我应该收到回消息。我应该收到一条短信我的真实手机上写着“啊嘿世界”。我们开始做吧,看起来我在某个地方漏掉了一句话。那么我缺少的引文在哪里?我没有看到缺少的报价。我可以按向上箭头,也许它会出现。是的。啊对。你知道我这样做了多少次吗?哎呀世界,感叹号是你通常需要逃避的事情。所以我只想说“嘿世界”那里有一个单引号。所以,如果你遇到这个问题,抱歉,就是这样。所以我按下向上箭头来获取我的信息现在,如果一切顺利,我按“发送”,我们应该收到一条短信,开始吧。所以我收到了这条消息,我收到了果然,就在这里,我明白了。你可以看到这里它说在身体的前面它说“从您的 Twilio 试用帐户发送”没关系,我们使用的是试用帐户,完全没问题,但我做到了,并且成功了,我成功了我的真实手机,我收到了这条消息,这太棒了。我们现在有能力发送来自命令行的短信,对吗?太酷了。实际上让我们更进一步。所以我们知道那个 API,当我发表一篇文章时,我能够取回信息。我现在要继续,我要把它带回来我将在这里删除所有这些参数。我要摆脱来自、身体和目标我会改变,我会做到这一点,我要做一个 get 并让我向你展示它是什么样子的。所以我要去掉所有这些参数,我会保留相同的 URL,它仍然有我的帐户 SID 在那里,就在那里,而不是帖子,我们要做的是我们要做一个得到,我们应该做的是我们应该回来那里的所有消息。所以我会像消息日志一样点击它,对吗?这些是已发送的所有消息,太棒了,就在这里,从您的 Twilio 试用帐户发送。所以,实际上我可以让这个看起来有点漂亮,就像我们再次看到 JQ 一样,如果您愿意的话,注释中完全可选。是的,我们开始吧。所以你可以看到我有一些信息发送回此处,您可以看到该消息发送的信息已发送至我的电话号码从这个数字对我来说,这太棒了,对吧?就像我说的,卷曲有点具有挑战性因为它会有点不同如果您使用的是 MicrosoftWindows 或 Mac。我试图让它尽可能舒适但我你看到我确实遇到了一些事情就像我不能使用感叹号一样诸如此类的事情有点笨拙。请继续关注,因为还有更多工具即将推出。从本地机器上运行它真是太棒了。感觉很不错不是吗?你现在多酷的技能啊,可以发短信了只需一个命令即可从您的机器上完成。现在相信我,这只是提示你能做什么的冰山一角。还有更多 TwilioAPI 可用现在我知道你可以用 Curl 来探索它们。但现在,让我们更深入地讨论一下。现在我不了解你,但我有点笨拙当涉及到终端上的长命令时就像我们刚刚对 Curl 所做的那样。在探索 API 时,我非常喜欢依靠可视化工具。如果你不介意的话,我很乐意给你看一些,也就是说,当然,是在你短暂休息之后。🎵 当我需要时,我可以依赖一些工具探索新的 API,我想与您分享。我用这些来潜入并获得我的双手脏了并组织我的学习。最著名的工具之一,也是您使用过的工具之一可能已经听说过叫做“邮递员”。你明白了吗?邮差。除了是一个很好的双关语之外,它也是一个强大的功能。Postman 最初是一个 Chrome扩展,可让您进�



初学者API 2023-如何使用API(完整课程_教程)📚

消息集合

在这里,有一个名为“消息”的集合,位于此帐户SID下。

环境变量和路径参数

我们想要使用Curl的环境变量,也称为路径变量。路径参数的工作方式是,如果我们去掉并加上冒号,路径中的参数将替换此处的内容。

Twilio帐户SID

Twilio帐户SID是变量的名称,我们需要将其粘贴到相应的位置。

身份验证

我们需要进行身份验证,以确保消息不被任何人随意查看。因此,我们需要输入用户名和密码进行基本身份验证。

发送消息

发送消息是一个帖子而不是获取,我们需要包括收件人、发件人和消息内容。如果需要,还可以包括媒体URL以发送图片。

创建消息资源

在试用模式下,需要验证两个号码才能发送消息给其他人。在非试用模式下,可以自由发送消息。

笔记

将学习过程中的重要信息记录在笔记中,以便日后查阅。

通过这些步骤,我们可以成功发送和接收消息,并对API进行相应的操作。🚀


初学者API 2023-如何使用API(完整课程_教程)

创建和发送消息 📲

我们将深入了解如何创建和发送消息。我们将对消息体进行URL编码,并将其发送到指定的号码。请注意,不要在太晚的时候打电话到 (432) 527-4274。如果需要反馈,可以随时打电话,我很乐意聊天。

从查询字符串中提取数字

我们将从查询字符串中提取数字,然后将消息发送到Twilio号码。消息的正文将显示“来自REST Fox”,并且我们还将添加媒体URL。这样我们就可以进入消息日志了。

使用环境变量简化操作

为了简化操作,我们可以使用环境变量。通过在环境中定义Twilio帐户SID和身份验证令牌,我们可以在发送消息时使用模板语言来引用这些变量。这样就不需要在每个请求中重复输入用户名和密码。

使用Visual Studio Code进行编码

我通常使用Visual Studio Code进行编码工作。在这个编辑器中,我们可以安装Thunder Client扩展,这将允许我们创建和发送REST请求。这个工具非常方便,你可以尝试安装并使用它。

以上是我们在REST Fox中发送消息并使用环境变量简化操作的过程。接下来,我们将在Visual Studio Code中使用Thunder Client来继续我们的学习。


初学者API 2023-如何使用API(完整课程_教程)

👩🏻‍🏫 如何使用 VS Code 的 REST API 客户端

这是一个轻量级的 VS Code REST API 客户端。它非常强大,而且好消息是,它类似于 Postman,让你感觉非常熟悉。

安装客户端

点击“安装”按钮,就会在 VS Code 中安装一个名为 Thunder Client 的插件。

创建新集合

你可以创建一个新的集合,比如为 Twilio 创建一个新的集合。通常,当你在编码过程中遇到一个 API,想要了解它的工作原理时,可以直接从编辑器中进行探索。

使用 RESTFox

在 RESTFox 中,你可以抓取 Twilio 的帐户 SID,并且设置身份验证。这样,你就可以在集合中进行设置,并且可以执行请求,获取所需的信息。

使用缓存

通过设置标头,你可以使用缓存来避免不必要的请求。这是一个非常强大的功能,让你能够更高效地获取所需的信息。

Postman 的使用

在浏览器中,你可以使用 Postman 来运行和管理 API 请求。Postman 提供了丰富的功能,让你能够更轻松地管理和测试 API。

Twilio Postman 集合

在 API 网络中,你可以找到 Twilio 的 Postman 集合,这些集合已经为你构建好了,让你能够更快速地使用 Twilio 的 API。

通过这些工具和功能,你可以更加轻松地探索和理解不同的 API,提高你的开发效率。


初学者API 2023-如何使用API(完整课程_教程) 📚

熟悉 Postman 工具

感觉非常相似。所以你对此很熟悉。 这里还有很多其他的东西,可能会有点分散注意力。我试图避免这种情况,因为我想让你熟悉它。但要知道这是存在的。

生成代码

Postman 所做的最酷的事情之一是,如果你点击最右边的这里,有这个小代码,就像开放和封闭标签。这真的很整洁。所以我们有 Curl,对吧?所以我们可以看到,这就是我继续前进的方式,这感觉很熟悉,对吧?这就是我们实际做的,我们做了这个 curl 语句,但请检查一下。您可以使用任何编程语言来执行此操作。所以这里的技巧,要记住的技巧是,任何可以发出 HTTP 请求的编程语言,就像它内置了一个客户端一样,因为这些都是标准的 REST API,对吗?

使用辅助库

在 Postman 上,有一些关于如何充分利用所有可用的东西的课程。Postman 深入研究所有这些工具,非常棒,一个超级强大的工具,而且每天都在变得更好。有很多功能我们没有涵盖,我们甚至只触及了表面。那里有一整套课程。检查注释以了解查看该内容的方法。我们了解了如何一起组织我们的请求,纳入收藏并分享共同点,并通过使用变量来保护值。我们学习了如何为请求添加不同的值,包括通知值、查询字符串和标题。我们还了解了如何导航通过点击 URL 来获取各种子资源。我们甚至看到了如何创建实际的可运行代码。许多产品都提供 SDK 或软件开发套件或帮助程序库,允许您可以用您的母语与他们的产品进行交互。正如您所看到的,它完全抽象了 REST API。

Twilio 帮助程序库

让我们看一下 Twilio 帮助程序库。在此之前,先简单提醒一下,以确保您检查该视频上的注释。有一个指向已构建集合的存储库的链接,已准备好供您使用。有很多很棒的 API 可供练习。我们刚刚看到的所有工具非常适合访问和探索 API。然而,当到了你的时候,最有可能想要写一些代码。现在正如我们在《邮递员》中看到的那样,您实际上可以生成代码。所有编程语言都有某种方式发出 HTTP 请求,正如您所知,HTTP 请求这是我们与 REST API 交互真正需要的一切。所以写这样的代码是完全没问题的,但你会发现你最终会写很多所谓的样板代码。许多产品和服务创造了帮助您避免此问题的解决方案。它们通常被称为辅助库或 SDK、软件开发套件。它们将特定于您的编程语言。这些库可以帮助你编写代码更加简洁易读。让我们去看看其中一些辅助库。


初学者API 2023-如何使用API(完整课程_教程) 💻

安装 Visual Studio Code

我之前告诉过你,我使用的是 Visual Studio Code,希望你已经安装了。如果没有安装,可以按照说明在你的计算机上正确安装。

创建新文件

在指定目录下创建一个新文件,命名为 explorer.JS,然后粘贴代码。

安装 Twilio Helper 库

使用包管理器 NPM 安装 Twilio Helper 库。如果没有安装 Node,可以查看注释中的安装指南。

设置环境变量

创建一个名为 Twilio.env 的新文件,并将帐户 SID 和身份验证令牌放入其中。然后运行该文件,将这些变量放入环境变量中。

运行代码

在终端中执行命令 node explorer,查看代码是否能正常运行。

异步行为

JavaScript 是异步的,需要理解代码中的异步行为。代码中的客户端消息列表方法是异步的,需要等待返回后再执行后续操作。

承诺

客户端消息列表返回一个承诺,即在未来会有一个值,该值就是消息。代码中使用 then 方法等待承诺的返回,并在返回后执行相应的函数。


初学者API 2023-如何使用API(完整课程_教程)

👩🏻‍🏫 函数参数 这些是函数的参数。

👩🏻‍🏫 粗箭头 粗箭头表示函数运行时会发生的事情。

👩🏻‍🏫 异步函数 异步函数可以让你循环遍历每个值位于数组中。

👩🏻‍🏫 错误处理 当使用API时,要注意捕捉每一个承诺,以及捕捉错误。

👩🏻‍🏫 异步权重 异步权重是一种异步函数,可以让函数看起来更像是在一条线上运行。

👩🏻‍🏫 删除消息 创建一个名为“删除所有消息”的函数,用于清理消息。

👩🏻‍🏫 消息处理 对每条消息进行处理,包括警告和删除操作。

👩🏻‍🏫 完成 完成异步操作,打印日志表示完成。


初学者API 2023-如何使用API(完整课程_教程)

🎙️ 错误捕获和控制台输出

如果你想的话,我会做我以前做过的同样的事情。捕获错误,我将执行控制台点错误。现在如果你使用控制台,你知道,当程序运行时正在运行什么,它跑到屏幕上并且有不同的级别,你可以做的事,错误就是其中之一。如果我只是传递那里发生的错误,所以我要警告我们会删除该消息,但让我们看看发生了什么。所以我要摆脱,我要把启动程序保留在这里,对吗?这样我们就可以启动程序了,然后它会删除所有消息,它会调用它,然后当一切完成后,它会说完成了,我要摆脱我们这里的东西。好的,我们已经删除了所有消息,它将进入,它将获得所有消息的列表。它将循环遍历每一条消息。当它完成后,我们会,现在我们要警告它会删除它,这就是我们最终要做的,因为有一个可用的功能。好的?所以我要保存它,我要运行它。让我们看看发生了什么。好的?所以它会删除我们的一些 SID。再说一遍,这是 MM,这是,MM 的意思,这是彩信,是带有这张照片和我们拥有的其他 SM 的照片。所以我想我已经准备好这样做了。我希望您也准备好这样做。再次强调,如果您希望此代码可用在仓库中,因为你想运行这个,因为你想删除这些消息。

🎙️ 异步函数和删除消息

所以我做了一个异步函数,该函数称为删除所有消息。而且因为它是异步的,我可以使用这个等待它将返回这个,这个客户消息,那个列表返回一个承诺,好吗?但是,还有对未来的承诺。但正因为等待,它会在线返回它。然后我将循环浏览每条消息,因为该消息是从API 返回的,感谢我们的辅助库创建了一个对象,这里我有一个关于该消息的方法,称为删除。它实际上会去实现下一个级别,对我来说,还有下一个级别的删除。所以这真的很好。这个物体感觉起来就像你在写JavaScript代码,会有这样的感觉。但在幕后我们知道它正在做此 API 调用和客户端库把这一切都从我们身边夺走了。如果现在你去看看,让我们快点回去,让我们看一下。还有其他辅助库。所以如果 Python 恰好是你的语言,这就是你如何做到的。这是客户端消息点列表,用于记录和消息,然后打印记录SID,可以看到代码所有语言看起来都有点不同你经历过,但也有点相似。所以标准性真的很好。REST API 的核心是辅助库正在生成感觉相同的代码在各个方面,因为图书馆都是一样的。当你使用其他 API 时你会发现他们有辅助库,他们将模仿 RESTAPI 的外观。

🎙️ REST API 约束和辅助库

我们能够从资源本身中删除的方式有助于解锁另一个 REST API 约束寻宝游戏项目,其中一个是统一设计。现在这个约束有四个小节,我们刚刚讨论了其中之一,资源操纵通过陈述,因为有足够的信息已包含在回复中,很明显对于我们来说,我们如何修改和删除资源。另一部分是资源识别和请求。这就是包含的 URI,我们已经看到了。但由于 URI 已包含在内,我们知道如何获取和操纵特定资源。统一使用 http 动词非常强大。我们刚刚写了一些脚本使用辅助库。这些库非常方便基于自动化的任务或批处理脚本,这就像同时拨打一大堆电话。现在,当我们谈论这个时,我们应该涵盖另一个与外部 API 交互的常用工具那就是 CLI,命令行界面。命令行界面可用于制作来自计算机上可执行文件的 API 调用。越来越多的这些出现在需要的工具中身份验证并执行一系列不同的服务。这个概念在云提供商中很流行需要进行设置的地方从命令行快速完成。检查注释以了解更多信息。您将使用辅助库的另一个常见问题来自您正在构建的应用程序内部。

🎙️ 构建 Web 应用程序

我们将构建一个展示的 Web 应用程序一组用户针对特定提示提交的照片。但这就是我们的应用程序要做的地方脱颖而出。我们将让我们的用户提交他们的照片并通过短信提供字幕。这将使我们能够做的是张贴标志以及广告牌和物理空间,上面写着将照片发送至此号码,然后发送至我们的网站将在网页上收集这些内容并显示它们。现在您可能想知道两件事。第一个可能是,等等,他们要发短信的照片是什么?这是一个很好的问题。我们将要建造这个应用。我喜欢这部分。建筑部分。我们将构建一个展示的 Web 应用程序一组用户针对特定提示提交的照片。但这就是我们的应用程序要做的地方脱颖而出。我们将让我们的用户提交他们的照片并通过短信提供字幕。这将使我们能够做的是张贴标志以及广告牌和物理空间,上面写着将照片发送至此号码,然后发送至我们的网站将在网页上收集这些内容并显示它们。现在您可能想知道两件事。第一个可能是,等等,他们要发短信的照片是什么?这是一个很好的问题。我们将要建造这个应用。我喜欢这部分。建筑部分。我们将构建一个展示的 Web 应用程序一组用户针对特定提示提交的照片。但这就是我们的应用程序要做的地方脱颖而出。我们将让我们的用户提交他们的照片并通过短信提供字幕。这将使我们能够做的是张贴标志以及广告牌和物理空间,上面写着将照片发送至此号码,然后发送至我们的网站将在网页上收集这些内容并显示它们。现在您可能想知道两件事。第一个可能是,等等,他们要发短信的照片是什么?这是一个很好的问题。我们将要建造这个应用。我喜欢这部分。建筑部分。我们将构建一个展示的 Web 应用程序一组用户针对特定提示提交的照片。但这就是我们的应用程序要做的地方脱颖而出。我们将让我们的用户提交他们的照片并通过短信提供字幕。这将使我们能够做的是张贴标志以及广告牌和物理空间,上面写着将照片发送至此号码,然后发送至我们的网站将在网页上收集这些内容并显示它们。现在您可能想知道两件事。第一个可能是,等等,他们要发短信的照片是什么?这是一个很好的问题。我们将要建造这个应用。我喜欢这部分。建筑部分。我们将构建一个展示的 Web 应用程序一组用户针对特定提示提交的照片。但这就是我们的应用程序要做的地方脱颖而出。我们将让我们的用户提交他们的照片并通过短信提供字幕。这将使我们能够做的是张贴标志以及广告牌和物理空间,上面写着将照片发送至此号码,然后发送至我们的网站将在网页上收集这些内容并显示它们。现在您可能想知道两件事。第一个可能是,等等,他们要发短信的照片是什么?这是一个很好的问题。我们将要建造这个应用。我喜欢这部分。建筑部分。我们将构建一个展示的 Web 应用程序一组用户针对特定提示提交的照片。但这就是我们的应用程序要做的地方脱颖而出。我们将让我们的用户提交他们的照片并通过短信提供字幕。这将使我们能够做的是张贴标志以及广告牌和物理空间,上面写着将照片发送至此号码,然后发送至我们的网站将在网页上收集这些内容并显示它们。现在您可能想知道两件事。第一个可能是,等等,他们要发短信的照片是什么?这是一个很好的问题。我们将要建造这个应用。我喜欢这部分。建筑部分。我们将构建一个展示的 Web 应用程序一组用户针对特定提示提交的照片。但这就是我们的应用程序要做的地方脱颖而出。我们将让我们的用户提交他们的照片并通过短信提供字幕。这将使我们能够做的是张贴标志以及广告牌和物理空间,上面写着将照片发送至此号码,然后发送至我们的网站将在网页上收集这些内容并显示它们。现在您可能想知道两件事。第一个可能是,等等,他们要发短信的照片是什么?这是一个很好的问题。我们将要建造这个应用。我喜欢这部分。建筑部分。我们将构建一个展示的 Web 应用程序一组用户针对特定提示提交的照片。但这就是我们的应用程序要做的地方脱颖而出。我们将让我们的用户提交他们的照片并通过短信提供字幕。这将使我们能够做的是张贴标志以及广告牌和物理空间,上面写着将照片发送至此号码,然后发送至我们的网站将在网页上收集这些内容并显示它们。现在您可能想知道两件事。第一个可能是,等等,他们要发短信的照片是什么?这是一个很好的问题。我们将要建造这个应用。我喜欢这部分。建筑部分。我们将构建一个展示的 Web 应用程序一组用户针对特定提示提交的照片。但这就是我们的应用程序要做的地方脱颖而出。我们将让我们的用户提交他们的照片并通过短信提供字幕。这将使我们能够做的是张贴标志以及广告牌和物理空间,上面写着将照片发送至此号码,然后发送至我们的网站将在网页上收集这些内容并显示它们。现在您可能想知道两件事。第一个可能是,等等,他们要发短信的照片是什么?这是一个很好的问题。我们将要建造这个应用。我喜欢这部分。建筑部分。我们将构建一个展示的 Web 应用程序一组用户针对特定提示提交的照片。但这就是我们的应用程序要做的地方脱颖而出。我们将让我们的用户提交他们的照片并通过短信提供字幕。这将使我们能够做的是张贴标志以及广告牌和物理空间,上面写着将照片发送至此号码,然后发送至我们的网站将在网页上收集这些内容并显示它们。现在您可能想知道两件事。第一个可能是,等等,他们要发短信的照片是什么?这是一个很好的问题。我们将要建造这个应用。我喜欢这部分。建筑部分。我们将构建一个展示的 Web 应用程序一组用户针对特定提示提交的照片。但这就是我们的应用程序要做的地方脱颖而出。我们将让我们的用户提交他们的照片并通过短信提供字幕。这将使我们能够做的是张贴标志以及广告牌和物理空间,上面写着将照片发送至此号码,然后发送至我们的网站将在网页上收集这些内容并显示它们。现在您可能想知道两件事。第一个可能是,等等,他们要发短信的照片是什么?这是一个很好的问题。我们将要建造这个应用。我喜欢这部分。建筑部分。我们将构建一个展示的 Web 应用程序一组用户针对特定提示提交的照片。但这就是我们的应用程序要做的地方脱颖而出。我们将让我们的用户提交他们的照片并通过短信提供字幕。这将使我们能够做的是张贴标志以及广告牌和物理空间,上面写着将照片发送至此号码,然后发送至我们的网站将在网页上收集这些内容并显示它们。现在您可能想知道两件事。第一个可能是,等等,他们要发短信的照片是什么?这是一个很好的问题。我们将要建造这个应用。我喜欢这部分。建筑部分。我们将构建一个展示的 Web 应用程序一组用户针对特定提示提交的照片。但这就是我们的应用程序要做的地方脱颖而出。我们将让我们的用户提交他们的照片并通过短信提供字幕。这将使我们能够



初学者API 2023-如何使用API(完整课程_教程)

构建动态应用程序

这将使我们能够定义任何你想要的功能,比如发短信给我你的狗的照片,给我们发送一张窗外景色的照片,或者给我拍一张最能模仿我的照片。接下来,我们将专注于使用API让事情正常运转。

设置网页应用程序

在第三单元视频一中,我们有一个名为index.html的网络应用程序。我们要抓取原始代码,然后在本地创建一个新文件,命名为index.html,将原始代码粘贴到这个文件中。现在我们在本地有了该代码,可以继续探索。

使用视图框架和API

我们使用了一个名为View的框架,它提供了API来处理数据和方法。我们还使用了Silent Box来执行弹出窗口。在网页应用程序的主体部分,我们可以看到一些调用数据和画廊的设置。

加载图像和通信

我们定义了一个名为load images的方法,它是一个异步图像,用于加载图片。我们还使用消息传递API来使用提交的照片,并创建一个与预期响应相匹配的基于Web的API。

部署网页

最后,我们将网页部署到公共互联网上,以便其他人可以访问。这在时间推移中变得更加容易,不再需要架设服务器或购买域名,而是可以直接将网页部署到互联网上。