RESTful是一種互聯網應用程序的API設計理念:URL定位資源,用HTTP動詞(GET,POST,DELETE,DETC)描述操做。簡單的說:服務器上每一種資源,好比一個文件,一張圖片,一部電影,都有對應的url地址,若是咱們的客戶端須要對服務器上的這個資源進行操做,就須要經過http協議執行相應的動做來操做它,好比進行獲取,更新,刪除等。python
REST的原則:json
(1)資源與URI服務器
(2)統一資源接口app
(3)資源的表述post
(4)資源的連接測試
(5)狀態的轉移url
本文基於Python開發,用httpbin模塊做爲測試服務器來說解設計
1.發送get請求code
# -*- coding:utf-8 -*- import pprint,requests def main(): response = requests.get( 'http://127.0.0.1:5000/get', params={'foo':'bar'} ) pprint.pprint(response.json()) if __name__ == '__main__': main()
執行後返回結果:orm
{'args': {'foo': 'bar'},
'headers': {'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate',
'Connection': 'keep-alive',
'Host': '127.0.0.1:5000',
'User-Agent': 'python-requests/2.18.4'},
'origin': '127.0.0.1',
'url': 'http://127.0.0.1:5000/get?foo=bar'}
2.發送post請求
# -*- coding:utf-8 -*- import pprint,requests def main(): response = requests.post( 'http://127.0.0.1:5000/post', params={'foo':'bar'} ) pprint.pprint(response.json()) if __name__ == '__main__': main()
返回結果:
{'args': {},
'data': '',
'files': {},
'form': {'foo': 'bar'},
'headers': {'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate',
'Connection': 'keep-alive',
'Content-Length': '7',
'Content-Type': 'application/x-www-form-urlencoded',
'Host': '127.0.0.1:5000',
'User-Agent': 'python-requests/2.18.4'},
'json': None,
'origin': '127.0.0.1',
'url': 'http://127.0.0.1:5000/post'}
3.發送json格式的post請求
# -*- coding:utf-8 -*- import pprint,requests,json def main(): # 須要指明Content-Type response = requests.post( 'http://127.0.0.1:5000/post', json.dumps({'foo':'bar'}), headers={'Content-Type':'application/json'} ) pprint.pprint(response.json()) if __name__ == '__main__': main()
執行結果:
{'args': {}, 'data': '{"foo": "bar"}', 'files': {}, 'form': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Connection': 'keep-alive', 'Content-Length': '14', 'Content-Type': 'application/json', 'Host': '127.0.0.1:5000', 'User-Agent': 'python-requests/2.18.4'}, 'json': {'foo': 'bar'}, 'origin': '127.0.0.1', 'url': 'http://127.0.0.1:5000/post'}