摘要
本文着重介绍我方与宜搭平台交互的微服务架构设计,与接入过程中的核心知识点分享。
关键词: 宜搭、后端、python
背景
公司合同管理、对公付款业务使用阿里宜搭进行搭建,需要将宜搭平台的数据拉回到我方进行精加工,同时也要将我方系统的数据与宜搭服务进行联动,丰富我们的业务系统的功能;考虑到我们还有不少系统以后会接入宜搭平台,为后期的快速接入和功能升级,特将本次宜搭三方微服务的搭建遇到的问题以及解决方案分享出来,与诸君共勉。
服务框架介绍
1、系统价格架构
上图简要分析了我方系统框架各个模块的逻辑关系,其中客户端,可以根据需要进行横向扩展。同时系统功能层也可以根据业务需要,进行横向扩张。
系统的主要工作为业务接口层的封装开发,业务接口层又分为两个部分,第一部分为与宜搭服务直接交互的逻辑处理模块,接口内容详见易搭Open API开放接口,第二部分为我方系统数据交互模块,有这两个模块的支持,我们的系统与宜搭应用的数据即可联合在一起,避免了数据孤岛的形成,也更方便我们对数据进行统计分析。
2、宜搭数据签名
根据宜搭官方的服务介绍,对数据签名认证支持Java,PHP,python2等多种语言,考虑到公司大范围使用的语言为python,我们接下来将以python的接入为例,为大家介绍,使用python快速接入宜搭的方法。
就宜搭服务当前版本,他并不支持python3以上的sha256加密方式,下面以宜搭提供的demo为准,对部分代码做介绍。
#!/usr/bin/env python
# coding=UTF-8
import urlparse
import urllib
import urllib2
import datetime
import time
import random
import base64
import hmac
import hashlib
import uuid
import socket
class ExecutableClient(object):
#API_KEY:你的应用的access_key,注意是企业注册宜搭时的key,不是具体应用的app_key
API_KEY = ''
#你的应用的secret_key
API_SECRET_KEY = '' # 同上面的api_key
#API版本,默认1.0
API_VERSION = '1.0'
API_SERVER = ''
#API name
API_NAME = ''
API_URL = API_SERVER + API_NAME
def __init__(self):
self.ipaddress = '127.0.0.1'#self.get_ip_address()
self.method = 'GET'
# 与宜搭进行数据交互时,下面的这三个参数为必穿,我们可以在初始化加入
self.params = {
"appType": app_type, "systemToken": system_token, "userId": user_id}
@classmethod
def get_mac_address(cls):
mac = uuid.UUID