2010-04-21 60 views

回答

2

嗯,首先,這個問題確實應該:

「我怎樣寫使用Django和JSON一個RESTful API?」

的iPad就像任何其他Web瀏覽器(客戶端),他們可以使用JavaScript,JSON等

下面是你需要做一個高層次的描述:

  1. 寫Django查看並將其映射到一個URL,例如:/ api/some_action/
  2. 寫出您的視圖的正文,讓它執行您在服務器上需要的任何操作。
  3. 編寫顯示在用戶iPad上的HTML/javascript代碼,以便當iPad用戶訪問您網站的某個部分(比如說/ home /)時,他們會向您的服務器發送JSON請求,與服務器通話(例如,發送一些JSON到/ api/some_action /)

一旦您的Javascript代碼發送JSON到API視圖,您的視圖應該處理該JSON並執行任何您想要的操作。

這是大多數網絡服務開發的方式。

希望有幫助!

+0

我沒有在iPad上使用HTML/Javascript,我在編寫本地iPad應用程序。 – MikeN 2010-04-21 14:44:40

+1

@MikeN用「原生iPad應用程序」替換第3點中的「HTML/javascript」。原則是一樣的,API的一點是,它不關心從哪裏或如何請求進來。 – 2010-04-21 15:01:02

+0

@MikeN,Sponsz上校基本上釘牢了我頭上的意思。無論您是否使用HTML/Javascript,您仍然可以從iPad應用程序生成HTTP請求。 我不是iPad開發人員,所以我不知道蘋果API,但我保證你有'curl'之類的東西,可以很容易地向服務器發送HTTP請求。 – rdegges 2010-04-21 15:41:32

1

iPad(或iPhone/iPod)瀏覽器可以發送PUT/DELETE命令嗎?對於我來說,這是嘗試在JavaScript中執行類似REST的應用程序時遇到的最大麻煩。最後,我傾向於做的是具有小的Django視圖(主要使用create_update通用視圖)來處理HTML /表單/模型集成;在JS中,我使用jQuery的$('#dialog').dialog().load('dialogurl')來打開一個對話框並使用Django生成的表單加載它。一定要自己管理submit()

我更喜歡在瀏覽器上編寫一個REST服務器(可能使用Django-Piston)和一個完整的客戶端應用程序;但到目前爲止,我還沒有找到一個足夠好的JS框架。 (睡衣或qooxdoo的聲音很好,但秋天'有點短')

+0

嘗試使用本機iPad應用程序,而不是iPad上的網絡瀏覽器。 – MikeN 2010-04-21 14:45:24

+0

@MikeN:那麼,是的,去完整的REST! – Javier 2010-04-21 15:50:30

0

Django TastyPie解決了這個需求 - 適用於iOS(iPhone/iPad)和Android平板電腦的RESTful和Ajax。

http://django-tastypie.readthedocs.org/en/latest/index.html

http://django-tastypie.readthedocs.org/en/latest/tutorial.html#adding-to-the-api

這使得更多的數據訪問,所以如果我們再次啓動的runserver,以下網址應該工作:

* http://127.0.0.1:8000/api/v1/?format=json 
    * http://127.0.0.1:8000/api/v1/user/?format=json 
    * http://127.0.0.1:8000/api/v1/user/1/?format=json 
    * http://127.0.0.1:8000/api/v1/user/schema/?format=json 
    * http://127.0.0.1:8000/api/v1/user/set/1;3/?format=json 
    * http://127.0.0.1:8000/api/v1/entry/?format=json 
    * http://127.0.0.1:8000/api/v1/entry/1/?format=json 
    * http://127.0.0.1:8000/api/v1/entry/schema/?format=json 
    * http://127.0.0.1:8000/api/v1/entry/set/1;3/?format=json 

這裏的演示 https://github.com/natea/Valentunes

它有一個網絡客戶端iPhone應用程序(搜索它)。