我希望能够以编程方式查询API。例如,我想知道给定方法需要/可选的参数及其类型。信息必须在某个地方,因为它由the Explorer使用,但我没有看到访问它的方式,我找不到搜索,因为条款非常通用(例如'元数据&#39 ;在EXIF上带来了大量的点击率。
我问,因为我正在编写包装器,希望提供交互式帮助,而不必抓取Web文档。
答案 0 :(得分:2)
酷!他们正是我想要的......
来自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>
答案 1 :(得分:0)
简而言之,不,Flickr没有提供你想要的东西。
您所描述的是一个内省的API,而Flickr目前不提供。 Introspection是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(但是嘿,这就是编写包装器的重点,以便其他人不要#39; t必须做手工劳动:D)。根据您正在使用的语言来创建客户端包装器,可能有一些工具可以帮助您自动化部分客户端包装器。
一个例子是许多面向对象的语言都有工具来帮助解析JSON并将其转换为相应语言的模型,例如Java,C#,Python,{{3}等等。