跳转到主要内容

Más Móvil B2B API的Python客户端

项目描述

Más Móvil Python API客户端

此Python API客户端提供了对Más Móvil B2B REST API的访问。

安装

需求

  • Python 3.8+

使用

登录

为了认证,您需要指定凭证,这些凭证需要设置为以下环境变量名称

'MM_BASEURL': 'https://<host>/cableOperadores/services/apexrest/api'
'MM_USER': 'user'
'MM_PASSWORD': 'pwd'
'MM_DOMAIN': 'domain'

MM_BASEURL必须指向MásMóvil的API环境,无论是测试还是生产。Pymasmovil将只附加API路由,如/v0/accounts来执行请求。在测试的情况下,请与他们确认,因为这肯定会根据客户而变化。

MM_USERMM_PASSWORD必须替换为您的实际用户凭证,而MM_DOMAIN必须指向“测试”或“登录”,具体取决于需要调用的MM环境(测试/生产)。

会话创建

登录是在我们使用Session.create方法创建会话时完成的

from pymasmovil.models.session import Session

session = Session.create()

print('Session created with id : {}'.format(session.session_id))
 

这返回了用于认证所有后续请求所需的API密钥。这就是为什么必须将Session实例传递给其他所有对象方法的原因。

账户

from pymasmovil.models.account import Account

account_id = '0017E000017pEo3QAE'
account = Account.get(session, account_id)

要创建新账户,我们需要使用Account.create方法,并将账户数据作为关键字参数传递。下面列出了Account的属性。请注意,它们都是字符串。

town, surname, stair, roadType, roadNumber, roadName, region, province, postalCode, phone, name, id, flat, email, door, donorCountry, documentType, documentNumber, corporateName, buildingPortal

没有属性是必须的,客户端参数验证由API完成。

from pymasmovil.models.account import Account

account = Account.create(session, town='Barcelona', surname='Garcia', phone='616010101')

OrderItem

可以通过与访问账户相同的方式访问订单项。

from pymasmovil.models.order_items.py import OrderItem

order_item_id = '8028E34500215wgQAA'
order_item = OrderItem.get(session, order_item_id)

目前,可以按照创建账户的示例创建订单项,但它们的属性结构要复杂一些。

由于GET /order-item/:id响应和POST /accounts/:id/order-items请求除了少数属性外不匹配,因此订单项的创建被设计成基于从POST体中推断出的属性乐观地构建一个OrderItem实例。MásMóvil的API不会返回整个资源,就像人们期望的REST API那样。这就是为什么OrderItemcreate输入数据结构与OrderItem属性不直接匹配的原因。

最小结构以变量sample-order-item-post-request的形式展示。

from pymasmovil.models.order_items.py import OrderItem

order_item_data = {
    'lineInfo': [
        {
            'name': 'Antonio',
            'surname': 'Garcia',
            'phoneNumber': '616010101',
            'documentType': 'NIF',
            'iccid_donante': '8934046318031035245',
            'iccid': '8934046318031035250',
        }
    ]
}

order_item = OrderItem.create(session, order_item_data)

开发

Python版本

我们使用Pyenv来设置Python版本,并使用virtualenv来开发包。

您需要

$ pyenv install 3.8.2
  • 创建virtualenv
$ pyenv virtualenv 3.8.2 pymasmovil

Python包需求

在虚拟环境中安装Python包

$ pyenv exec pip install -r requirements.txt

格式化

我们在提交之前使用Pre-commit执行Black作为格式化工具。

安装pre-commit配置(在文件.pre-commit-config.yaml中找到)

$ pre-commit install

之后,每次提交时,Black将在提交中运行修改的文件。

我们还可以随时执行black,选择文件或路径来格式化其中的所有文件

$ black .
All done! ✨ 🍰 ✨
24 files left unchanged.

发布

按照以下步骤更新CHANGELOG.md

  1. 添加任何缺失的合并请求条目。
  2. 复制[Unreleased]标题。
  3. 将第二个Unreleased替换为版本号和当前日期。从以前的版本复制确切的格式。

然后,您可以发布并发布包到PyPi

  1. 更新setup.py中的VERSION变量,使其与CHANGELOG中指定的版本相匹配。
  2. 提交一个带有这些更改的合并请求以供团队批准
  3. 合并它,在该合并提交上添加一个git标签并将其推送到远程仓库。
  4. 一旦管道成功通过,就批准publish步骤。

许可证

待定

项目详情


下载文件

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

源分布

pymasmovil-0.0.30.tar.gz (14.4 kB 查看哈希值)

上传时间 源代码

构建分发版

pymasmovil-0.0.30-py2.py3-none-any.whl (15.6 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持