跳转到主要内容

轻松创建可维护的API客户端。

项目描述

BaseAPI

轻松创建可维护的API客户端。

理由

构建其他基于Python的API客户端时,我发现往往会得到一个“大类”,其中包含了我API的大部分定义。BaseAPI试图将无关的API概念分开,希望使维护体验更加容易。

安装

PyPi是最容易安装的方式

pip install base-api

使用

创建客户端

通常通过继承Client类来创建自己的客户端类

from baseapi import Client


class MyClient(Client):
    DEFAULT_URL = 'https://my-api.com'

在这里,我们设置了默认的API URL。这也可以在创建客户端时设置

client = MyClient(url='https://localhost')

创建API

要向您的客户端添加访问您的API的功能,请使用单个API类。这些反映了您的整体API的独立部分。

例如,您可能有一个API的授权组件。要向客户端库添加授权,您可能创建一个名为auth.py的文件

from baseapi.apis import GraphqlApi


class AuthApi(GraphqlApi):
    def login(self, username, password):
        login_query = '...'
        data = {
            'username': username,
            'password': password
        }
        return self.perform_query(login_query, data)

    def logout(self):
        logout_query = '...'
        return self.perform_query(logout_query)

一旦您有了API的这一部分准备就绪,您可以通过在客户端类定义期间指定它来将其添加到客户端中

from baseapi import Client


class MyClient(Client):
    DEFAULT_URL = 'https://my-api.com'
    DEFAULT_APIS = (
        'auth',
    )

在这种情况下,auth.py必须放在您的PYTHONPATH中,很可能与您的客户端类文件放在一起。现在,您可以通过以下方式访问客户端上的API方法

client = MyClient()
client.login('username', 'password')

目前支持两种API类型,GraphQL和Rest。与上面的auth API相同,但使用Rest

from baseapi.apis import RestApi


class AuthApi(RestApi):
    def login(self, username, password):
        data = {
            'username': username,
            'password': password
        }
        return self.post('/login', data)

    def logout(self):
        return self.post('/logout')

向客户端公开方法

API 中暴露给客户端的方法是基于前导下划线选择的。没有下划线的方法会自动添加到客户端类中,而有下划线的方法被视为私有。

例如,可以将一个本地验证方法添加到 API 中,如下所示

from baseapi.apis import RestApi


class MyApi(RestApi):
    def get_something(self, type):
        self._validate_type(type)
        return self.get('/api/something, data={'type': type})

    def _validate_type(self, type):
        # Do validation.
        pass

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

base-api-0.1.1.tar.gz (6.7 kB 查看哈希)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页