2014-08-29 53 views
1

我希望能夠以編程方式查詢API。例如,我想知道對於給定的方法,哪些參數是必需/可選的,以及它們的類型。這些信息必須在某個地方,因爲它被the Explorer使用,但我沒有看到訪問它的方法,並且因爲術語非常通用(例如,'元數據'在EXIF上帶來了大量的點擊量),所以我不再搜索。Flickr API:以編程方式訪問文檔

我在問,因爲我正在編寫一個包裝並希望提供交互式幫助而不必刮取網絡文檔。

+0

什麼是 「資源管理器」? – Thilo 2014-08-29 03:43:10

+0

可能你的意思是[這](https://www.flickr.com/services/api/explore/flickr.photos.search)的資源管理器?我仍然不確定你的問題是什麼。你問你如何以編程方式查詢他們的API?所有的文檔都在[這裏](https://www.flickr.com/services/api/)。 – yiati 2014-08-29 03:45:25

+0

@Thilo,是那個探險家。我添加了問題的鏈接。 – 2014-08-29 03:49:56

回答

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> 
+0

很酷,我從來沒有見過反射式API方法。看起來這樣可以完美地適合你。 – yiati 2014-08-31 04:53:28

0

總之,不,Flickr不會提供您要查找的內容。

你所描述的是一個內省的API,而Flickr目前沒有提供。反思是API提供商的一種選擇,如前所述,Facebook Graph API對元數據領域的支持不足。幫助建立自省API的框架的一個很好的例子是sandman,但大多數公司傾向於做兩個用於更新API的流行選項中的一個/兩個。

  • 使他們面前宣佈自己的API的任何變化
  • 自己寫的官方客戶端封裝在X許多語言

的Flickr沒有任何官方的客戶端包裝,但他們做鏈接非官方的客戶端在their API page包裝。

由於您正在構建和維護您自己的非官方Flickr客戶端包裝,並且Flickr沒有提供內省的API,所以您只剩下閱讀公告API更改的第一個選項。

這些存在於他們的changelog blog以及他們的Flickr API Twitter account。幸運的是,這些事件不應該經常發生,所以它不應該是一個問題。您可以使用額外的資源作爲API更新的額外防禦層,這是一個持續集成服務,如Travis CI,以確保包裝程序的API調用按預期工作。

你主要關心的似乎是你的客戶端API包裝器的第一代,這將不可避免地需要一些手工勞動而沒有Flickrs端的內省API(但是,嘿,整個寫包裝的權利,所以其他人不必做體力勞動:D)。根據您使用的語言來創建客戶端封裝器,可能有一些工具可幫助您自動化客戶端封裝器的一部分。

一個例子是,許多面向對象的語言有工具來幫助解析JSON並將其轉換成模型相應的語言,如JavaC#PythonMore Python

+0

我正在編寫自己的包裝,並希望避免通過閱讀或通過刮取Web文檔來實現半自動 – 2014-08-29 04:00:15

+1

Explorer交互式api頁面很可能由Flickr的開發人員手動完成。製作一個程序來分析和分析他們的在線API文檔可能會像手動複製一樣費力。再加上你必須解析的html可以在任何時候改變形式給你另一個你需要維護的程序。 – yiati 2014-08-29 04:09:25

+0

是的,這就是爲什麼我試圖避免刮!令人驚訝的是,公司沒有提供這些,這給程序員實施包裝帶來了很大的負擔。他們可能幾乎是自動的。 Facebook通過「metadata = 1」查詢提供了類似的內容,但我不知道它有多完整...... – 2014-08-29 21:45:47