跳转到主要内容

根据 https://tools.ietf.org/html/draft-nottingham-json-home-06 使用 JSON Home 页面的 REST API 客户端

项目描述

json_home_client

Python 中调用 http+json API 的客户端类。需要 Python 3.6+。

支持以下 JSON Home 页面: https://tools.ietf.org/html/draft-nottingham-json-home-06

安装

标准的 Python 软件包安装

   pip install json-home-client

使用方法

导入 json_home_client 包并实例化一个客户端。

   from json_home_client import Client

   api = Client('http://api.example.com')

调用 API

   result = api.call('foo', var1=arg1, var2=arg2)
   print result.data

客户端类

class json_home_client.Client(base_url: str, version: str = None, username: str = None, password: str = None, user_agent: str = None, sni_hostname: str = None, client_cert_path: str = None, client_key_path: str = None, ca_cert_path: str = None)

Client 构造函数接受 api 的基本 URL、可选的请求版本标识符、用户名和密码。它还允许自定义 sni_hostname(当 url 使用 ip 地址时很有用)、客户端证书和密钥,以及自定义 CA 文件路径。

Client.base_url: str

构造函数中设置的基本 URL,只读。

Client.default_version: Optional[str]

用于接受头的默认版本信息。

Client.default_accept: MimeType

API 调用的默认接受类型。

Client.username: Optional[str]

在 HTTP 身份验证头中发送的用户名。

Client.password: Optional[str]

在 HTTP 身份验证头中发送的密码。

Client.user_agent: str

在请求中发送的 User-Agent 字符串。

Client.resource_names: Sequence[str]

可用的 API 资源名称列表。

Client.resource(name: str) -> Resource

获取一个命名的资源。

Client.add_resource(name: str, url: str) -> None

添加一个 URL 资源。

Client.set_version(name: str, version: str = None) -> None

为特定资源设置请求版本标识符。如果未设置,则将使用默认版本标识符。

Client.set_accept(name: str, content_type: Union[MimeType, Sequence[MimeType]]) -> None

为特定资源设置请求的 Content-Type(s)。如果未设置,则使用 'application/json'。

Client.get(name: str, [kwargs]) -> Optional[Response]

对命名的资源执行 HTTP GET 操作。提供的任何命名参数都可以用于计算要调用的实际 URL。返回 Response 或 None(如果资源名称未知)。

Client.post(name: str, payload: bytes, content_type: MimeType = None, [kwargs]) -> Optional[Response]

对命名的资源执行 HTTP POST 操作。提供的任何命名参数都可以用于计算要调用的实际 URL。返回 Response 或 None(如果资源名称未知)。

Client.post_form(name: str, payload: Mapping[str, Any] = None, [kwargs]) -> Optional[Response]

对命名的资源执行 HTTP POST 操作。如果存在有效负载,则将其进行 URL 表单编码。提供的任何命名参数都可以用于计算要调用的实际 URL。返回 Response 或 None(如果资源名称未知)。

Client.post_json(name: str, payload: Any = None, [kwargs]) -> Optional[Response]

对命名的资源执行 HTTP POST 操作。如果存在有效负载,则将其转换为 JSON。提供的任何命名参数都可以用于计算要调用的实际 URL。返回 Response 或 None(如果资源名称未知)。

Client.put(name: str, payload = None, content_type: MimeType = None, [kwargs]) -> Optional[Response]

对命名的资源执行 HTTP PUT 操作。如果存在有效负载,则使用提供的 Content-Type 将其发送到服务器。有效负载必须预先编码,并且不会被客户端处理。提供的任何命名参数都可以用于计算要调用的实际 URL。返回 Response 或 None(如果资源名称未知)。

Client.patch(name: str, patch: Mapping[str, Any] = None, content_type: MimeType = MimeType.JSON_PATCH, [kwargs]) -> Optional[Response]

对命名的资源执行 HTTP PATCH 操作。如果存在 patch,则将其编码为 JSON,并以 'application/json-patch' 的形式发送到服务器。提供的任何命名参数都可以用于计算要调用的实际 URL。返回 Response 或 None(如果资源名称未知)。

Client.delete(name: str, [kwargs]) -> Optional[Response]

对命名的资源执行 HTTP DELETE 操作。提供的任何命名参数都可以用于计算要调用的实际 URL。返回 Response 或 None(如果资源名称未知)。

Response 类

Response.status_code: int

响应的 HTTP 状态码。

Response.headers: Mapping[str, Any]

HTTP 响应头部的字典。

Response.conten_type: MimeType

响应的 Content-Type。

Response.encoding: str

响应的编码。

Response.data: Any

响应体。如果 contentType 是 json,则数据将被解码为原生对象。

Resource 类

描述可用 API 资源的性质。

Resource.template

调用资源时使用的 URITemplate。

Resource.variables

可能传递给资源的变量字典。键是变量名称,值是可用的变量 URL 标识符(如果有的话)(见 https://tools.ietf.org/html/draft-nottingham-json-home-06#section-4.1)。

Resource.hints

描述资源任何提示的 Hints 对象(见 https://tools.ietf.org/html/draft-nottingham-json-home-06#section-5)。

Hints 类

Hints.http_methods: Sequence[str]

资源可以调用的 HTTP 方法的列表。

Hints.formats: Mapping[str, Sequence[MimeType]]

每个 HTTP 方法可用的格式的字典。键是 HTTP 方法,值是可用 Content-Type 的列表。

Hints.ranges: Optional[Sequence[str]]

范围指定符的列表。

Hints.preferences: Optional[Sequence[str]]

资源支持的偏好设置的列表。

Hints.preconditions: Optional[Sequence[str]]

资源所需的前置条件的列表。

Hints.auth: Optional[Sequence[Mapping[str, str]]]

资源接受的授权方案列表。

Hints.docs: 可选[str]

资源的文档URL。

Hints.status: 可选[str]

资源的状态。

MimeType类

MimeType(mime_type: str = None, type: str = None, structure: str = None, subtype: str = None)

构造函数,接受mime_type,将被解析,或单独的组件。

MimeType.type: str

主要类型,例如:"application/json" -> "application"

MimeType.structure: 可选[str]

结构,例如:"application/json" -> "json", "application/vnd.app.v1+json" -> "json"

MimeType.subtype: 可选[str]

子类型,例如:"application/vnd.app.v1+json" -> "vnd.app.v1"

备注

资源名称可以是绝对URL或相对于API的基础URL的相对URL。

项目详情


下载文件

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

源分布

此版本没有可用的源分布文件。请参阅生成分布存档的教程

构建分布

json_home_client-1.1.1-py3-none-any.whl (9.7 kB 查看哈希)

上传时间 Python 3

由以下提供支持