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.5.tar.gz
(10.3 kB
view hashes)
Built Distribution
Close
Hashes for doclink-1.0.5-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbab2a520bf49c6840e2ead1e5d25abd04ce739c039473894a6d98c1a68f774c |
|
MD5 | ac2c9592f50b9cf8ba75f00e313c13d1 |
|
BLAKE2b-256 | 5e99295ca197e0fd6f31b0e792eb352ea57270d7adc7862d820e38a32a922bd6 |