与外部系统通信

外部系统 -> Adapter

接收外部的https请求

https://codelab-adapter.codelab.club:12358/api/message/eim?message=hi

kano wand 和 calypso 都是案例

Python client

requests

import requests
requests.get("https://codelab-adapter.codelab.club:12358/api/message/eim?message=你好")

urllib.request

import urllib.request
import ssl
from socket import timeout

message = urllib.parse.quote("你好")
url = f'https://codelab-adapter.codelab.club:12358/api/message/eim?message={message}'
try:
    f = urllib.request.urlopen(url, context=ssl._create_unverified_context(), timeout=1) # time out
except timeout:
    print("message to adapter timeout")

JavaScript client

fetch

fetch("https://codelab-adapter.codelab.club:12358/api/message/eim?message=hi")

XMLHttpRequest

// 浏览器可能会提醒 CORS(跨域) 依然可用
var xhr = new XMLHttpRequest();
var url = "https://codelab-adapter.codelab.club:12358/api/message/eim?message=hi"
xhr.open("GET", url, true);
xhr.send();

Adapter -> 外部系统

由于 Adapter 允许自定义 Python 插件,所以根据外部系统接口自行实现即可。