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