這是一個如何使用python快速構建簡單restful風格webservice的應用教程。 python
rest風格的服務一般使用web.py來建立服務器端腳本,通常狀況下包含兩個url路徑: web
一個是爲了查詢全部用戶,一個是爲了查詢單個用戶。 json
例以下面的url: 服務器
http://localhost:8080/usersrestful
http://localhost:8080/users/{id}app
首先你應該安裝web.py模塊到你的python環境下。若是你以前沒有的話請執行下面的腳本。url
sudo easy_install web.pyspa
下面是一個提供數據的XML文件 .net
user_data.xml rest
1
2
3
4
5
6
7
8
9
|
<
users
>
<
user
id
=
"1"
name
=
"Rocky"
age
=
"38"
/>
<
user
id
=
"2"
name
=
"Steve"
age
=
"50"
/>
<
user
id
=
"3"
name
=
"Melinda"
age
=
"38"
/>
</
users
>
|
代碼清單一:提供一個簡單rest服務的python代碼
rest.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2014-08-04 14:03:19
# @Author : pinghailinfeng (pinghailinfeng79@gmail.com)
# @Link : http://my.oschina.net/dlpinghailinfeng
# @Version : $Id$
import
web
import
xml.etree.ElementTree as ET
tree
=
ET.parse(
'users.xml'
)
root
=
tree.getroot()
urls
=
(
'/users'
,
'list_users'
,
'/users/(.*)'
,
'get_user'
)
app
=
web.application(urls,
globals
())
class
list_users:
def
GET(
self
):
output
=
'users:['
;
for
child
in
root:
print
'child'
,child.tag,child.attrib
output
+
=
str
(child.attrib)
+
','
output
+
=
']'
;
return
output
class
get_user:
def
GET(
self
,user):
for
child
in
root:
if
child.attrib[
'id'
]
=
=
user:
return
str
(child.attrib)
if
__name__
=
=
'__main__'
:
app.run()
|
接下來運行這個腳本
./rest.py
默認是在8080端口提供能夠訪問的service服務。這個API服務返回的是json數據,你能夠使用下面任意一個URL路徑訪問,例如:
http://localhost:8080/users
http://localhost:8080/users/1
http://localhost:8080/users/2
http://localhost:8080/users/3
至此,一個簡單的restful風格的webservice應用創建完畢。
下面繼續研究web.py的其餘內容