Skip to main content

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.1.0.tar.gz (10.5 kB view hashes)

Uploaded Source

Built Distribution

doclink-1.1.0-py2.py3-none-any.whl (16.3 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page