2011-08-05 36 views
14

任何指針,關於在Python上使用App Engine實現REST API的建議?應用程序本身使用webappApp Engine的Python REST框架?

我目前知道的是,我可以:

  • 砍了我自己webapp處理程序處理類似REST的URI,但這似乎失去了它的優雅較大的資源量。我的意思是,對於temperature/atlanta這很簡單,但對於即使是一個相當簡單的/users/alice/address/work來說也不是那麼簡單(儘管請記住,在實現這一點之後,我並沒有這麼說,只是花了一些時間來設計合適的處理程序,所以我的看法可能會關閉)。

  • 使用其中一個更大的Python Web框架提供的REST功能。我對web2py有一些無法解釋的同情,但是,由於它沒有用於項目,所以將它與應用程序綁定以提供一些REST功能似乎......過度殺傷?

(咦,貌似我不喜歡任何這些方法的艱難。)

因此,這裏是我問:什麼樣的建議,最好根據經驗,你會對我在這裏?我有什麼選擇,我對他們的觀點是否正確,我錯過了什麼?

在此先感謝。

+2

如果你必須堅持'webapp',你可以使用['Appengine Rest Server'](http://code.google.com/p/appengine-rest-server/)。如果您可以使用其他框架,則可以使用['Django Rest Interface'](http://code.google.com/p/django-rest-interface/)更強大的解決方案。 –

+0

@Paolo我也會建議Appengine Rest Server,但是在閱讀完文檔後,我還沒有找到像OP所建議的那樣的複雜url模式的指針。 – systempuntoout

+1

@systempuntoout你說得對,這就是爲什麼我也建議'Django Rest Interface',因爲你可以定義你自己的URL模式。 –

回答

10

我有一個類似的問題。希望快速將我的DataStore通過REST公開給WebApps。

找到:AppEngine REST Server

到目前爲止,我只使用過它,但對於少量的工作,它顯然是非常有用的。並且它按照你的建議使用了webapp。

+0

請注意:它不支持'ndb'數據模型,但是https://code.google.com/p/appengine-rest-server/issues/detail?id=54 –

6

ProtoRPC與SDK捆綁在一起,它非常強大並積極開發(不過是實驗性的)。儘管我認爲源代碼本身有點複雜,但功能集非常完整,並且由具有創建此類庫的經驗的人員完成。它支持使用JSON,ProtocolBuffer和URL編碼格式進行傳輸。另外,您可以創建在服務器端工作的API 客戶端 - 它定義了一個包含Python和JavaScript實現的「消息」協議。我使用了其他「RESTful」Python庫,但沒有其他人提供這種一致性。

Here is the project pagehere is the mailing list

編輯:也許他們的文檔缺少一些關鍵字,但只是要清楚:一個或ProtoRPC的目的是爲創建REST服務提供堅實的基礎。

+0

ProtoRPC與Rest API有什麼共同之處? – systempuntoout

+0

@systempuntoout:一切。 :) ProtoRPC可以用來創建REST服務。 – moraes

+0

ProtoRPC可以根據使用的HTTP方法採取不同的操作嗎? – maligree