我希望能够以编程方式查询API。例如,我想知道对于给定的方法,哪些参数是必需/可选的,以及它们的类型。这些信息必须在某个地方,因为它被the Explorer使用,但我没有看到访问它的方法,并且因为术语非常通用(例如,'元数据'在EXIF上带来了大量的点击量),所以我不再搜索。Flickr API:以编程方式访问文档
我在问,因为我正在编写一个包装并希望提供交互式帮助而不必刮取网络文档。
我希望能够以编程方式查询API。例如,我想知道对于给定的方法,哪些参数是必需/可选的,以及它们的类型。这些信息必须在某个地方,因为它被the Explorer使用,但我没有看到访问它的方法,并且因为术语非常通用(例如,'元数据'在EXIF上带来了大量的点击量),所以我不再搜索。Flickr API:以编程方式访问文档
我在问,因为我正在编写一个包装并希望提供交互式帮助而不必刮取网络文档。
酷!他们正是我想要的......
从https://www.flickr.com/services/api/flickr.reflection.getMethodInfo.html:
示例响应
<method name="flickr.fakeMethod" needslogin="1"> <description>A fake method</description> <response>xml-response-example</response> <explanation>explanation of example response</explanation> <arguments> <argument name="api_key" optional="0"> You API application key.</argument> <argument name="color" optional="1"> Your favorite color.</argument> </arguments> <errors> <error code="1" message="Photo not found"> Full explanation...</error> <error code="100" message="Invalid API Key"> Full explanation...</error> </errors> </method>
很酷,我从来没有见过反射式API方法。看起来这样可以完美地适合你。 – yiati 2014-08-31 04:53:28
总之,不,Flickr不会提供您要查找的内容。
你所描述的是一个内省的API,而Flickr目前没有提供。反思是API提供商的一种选择,如前所述,Facebook Graph API对元数据领域的支持不足。帮助建立自省API的框架的一个很好的例子是sandman,但大多数公司倾向于做两个用于更新API的流行选项中的一个/两个。
的Flickr没有任何官方的客户端包装,但他们做链接非官方的客户端在their API page包装。
由于您正在构建和维护您自己的非官方Flickr客户端包装,并且Flickr没有提供内省的API,所以您只剩下阅读公告API更改的第一个选项。
这些存在于他们的changelog blog以及他们的Flickr API Twitter account。幸运的是,这些事件不应该经常发生,所以它不应该是一个问题。您可以使用额外的资源作为API更新的额外防御层,这是一个持续集成服务,如Travis CI,以确保包装程序的API调用按预期工作。
你主要关心的似乎是你的客户端API包装器的第一代,这将不可避免地需要一些手工劳动而没有Flickrs端的内省API(但是,嘿,整个写包装的权利,所以其他人不必做体力劳动:D)。根据您使用的语言来创建客户端封装器,可能有一些工具可帮助您自动化客户端封装器的一部分。
一个例子是,许多面向对象的语言有工具来帮助解析JSON并将其转换成模型相应的语言,如Java,C#,Python,More Python等
我正在编写自己的包装,并希望避免通过阅读或通过刮取Web文档来实现半自动 – 2014-08-29 04:00:15
Explorer交互式api页面很可能由Flickr的开发人员手动完成。制作一个程序来分析和分析他们的在线API文档可能会像手动复制一样费力。再加上你必须解析的html可以在任何时候改变形式给你另一个你需要维护的程序。 – yiati 2014-08-29 04:09:25
是的,这就是为什么我试图避免刮!令人惊讶的是,公司没有提供这些,这给程序员实施包装带来了很大的负担。他们可能几乎是自动的。 Facebook通过“metadata = 1”查询提供了类似的内容,但我不知道它有多完整...... – 2014-08-29 21:45:47
什么是 “资源管理器”? – Thilo 2014-08-29 03:43:10
可能你的意思是[这](https://www.flickr.com/services/api/explore/flickr.photos.search)的资源管理器?我仍然不确定你的问题是什么。你问你如何以编程方式查询他们的API?所有的文档都在[这里](https://www.flickr.com/services/api/)。 – yiati 2014-08-29 03:45:25
@Thilo,是那个探险家。我添加了问题的链接。 – 2014-08-29 03:49:56