RESTful API 是什么?

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'}

相关文章
相关标签/搜索