Create HTTP client from pydoc
Project description
*******
Doclink
*******
.. image:: https://travis-ci.org/Luoyufu/doclink.svg?branch=master
:target: https://travis-ci.org/Luoyufu/doclink
.. image:: https://codecov.io/gh/Luoyufu/doclink/branch/master/graph/badge.svg
:target: https://codecov.io/gh/Luoyufu/doclink
.. image:: https://img.shields.io/pypi/v/doclink.svg
:target: https://pypi.python.org/pypi/doclink
.. image:: https://img.shields.io/pypi/pyversions/doclink.svg
:target: https://pypi.python.org/pypi/doclink
| Build client for Web APIs from pydoc. Inspired by `Uplink <https://github.com/prkumar/uplink>`_.
Overview
========
| Doclink turns a Python function into HTTP API by writting pydoc to declare the api meta.
| It is based on Requests and uses YAML with predefined schema as api declaration.
| When calling the function, response from HTTP API will be passed in as a parameter for futher handling.
Features
========
* create python function as HTTP API with **pydoc**
* **YAML** based schema for api declaration
* handle api response in the **same** function
* response hook as **middleware**
* **all** args for Requests supported
* select base_uri dynamicly from simple **router**
Quick through, with httpbin
=====
Create a consumer instance.
.. code-block:: python
from doclink import Consumer
consumer = Consumer('http://httpbin.org/')
Add response hook(middleware).
.. code-block:: python
@consumer.resp_hook
def json_hook(resp):
resp.json = resp.json()
Add function for api declaration.
.. code-block:: python
@consumer.get('get')
def get(resp):
"""
<meta>
args:
query:
- arg1: arg1
- arg2: arg2
</meta>
"""
return resp.json['args']
Use you api.
.. code-block:: python
>>> get()
{
"arg1": "arg1",
"arg2": "arg2"
}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
doclink-1.0.7.tar.gz
(10.4 kB
view hashes)
Built Distribution
Close
Hashes for doclink-1.0.7-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c850f92458aea91eb62f14d7092c2267af2f59e87f73acbce10cd3d5b320ada4 |
|
MD5 | 8671c461aebb87cc2e8992c96bbc55ab |
|
BLAKE2b-256 | e29590749382a09562a7a634322745cbb1b077e6ee52104c39ab0b1ebbc99eaa |