我正在尝试了解 API 包装器(仍然不知道它们是如何制作的)并且想知道,如果我要为 API 制作任何包装器,我将如何托管它们?
我以前在项目中使用过 API,但一直想知道这些 API 是如何导入的,从哪里导入的?它们托管在私人网站上还是 GitHub 上?
我正在研究 Twitter 的 Scala API,偶然发现了这个 GitHub 仓库。 我请参阅文档是用 Scaladoc 制作的,但他们究竟是如何将其托管在 GitHub 上以便我们查看其文档的?包链接又是如何工作的?
答案1
com.[用户名].[api] 是什么?
根据我的经验,这通常是一种组织方法,它允许对组织的任何内容进行逻辑层次化,同时还可以降低命名冲突的可能性。显然,它模拟了域名(以及文件系统)的设置方式(从根 [即com
] 到更具体的级别)。
例如,如果开发人员 A 和开发人员 B 都创建了一个名为 的模块foo
,则可以使用com.developerA.foo
and com.developerB.foo
,而不仅仅是foo
and foo
(如果同时使用,可能会导致命名冲突)。还可以轻松区分模块com.developerA.foo
属于开发人员 A(连同 eg com.developerA.bar
)和com.developerB.foo
属于开发人员 B(连同 eg com.developerB.baz
)。
就您链接中的文档而言,每个级别都是指向 GitHub 的单独 HTML 链接(尽管它们也可能链接到其他地方)。
如果我要制作任何 API 包装器,我将如何托管它们?
不幸的是,我不清楚“托管”在此上下文中的含义。但是,托管需要一台装有某种服务器软件的 PC,可供公众访问(无论您是允许访问文件以供下载,还是允许用户直接与您构建的内容进行交互)。
举个例子,可以使用git
Apache Web Server 来托管一些与 GitHub 有点类似的东西(您可以在其中通过 Apache 向公众提供 Git 存储库链接或 URL 连接)。
我一直很想知道这些API是如何导入的,以及从哪里导入的?
我不清楚这里的“导入”上下文是什么。但对于广义的 Web API,您通常是在联系程序或脚本。但您不是在命令行中输入命令,而是以 URL 的形式输入命令。您收到的数据也类似于命令行程序的输出,但传输到您的浏览器(而不是终端)。
使用包装器和 Web API,它们通常会“包装” URL 调用。因此,如果您sendMsg
在 Twitter 的包装器中使用名为 eg 的函数,该函数本身可能会执行类似于联系 eg 的操作https://api.twitter.com/1.1/some_api_interface/sendmessage?msg=blahblahblah
(Twitter 随后会发送您的消息blahblahblah
)。
它们托管在私人网站还是 GitHub 上?
答案很可能是这两个地方都可以成为托管此类内容的可行场所(同样,取决于软件和您对“托管”的定义)。
我正在研究 Twitter 的 Scala API,偶然发现了这个 GitHub 存储库。我看到文档是用 Scaladoc 制作的,但他们究竟是如何将其托管在 GitHub 上以便我们查看他们的文档的?
据我所知,生成的文档是普通 HTML因此可以由任何可以托管 HTML 文件的 Web 服务器托管。
那么包裹链接如何工作呢?
这里可能过于简单了,但 Web 服务器用于提供带有链接的 HTML 文档。像 GitHub 这样的大型网站在传递文件时有很多层,因此可能无法准确回答链接本身如何“工作”。但是对于标准,如果服务器不直接通过其他方式(直接链接、其他脚本等)git
直接提供这些文件,则可以有一个 CGI 程序来检索文件并将其传送到浏览器。ftp