常见问题

4.1 FastAPI中参数类型自动转换问题

POST接口/v1/api/app/intelligent-interaction接收一个history_len参数,该参数的类型定义为int型。在 FastAPI 中,使用 Pydantic 模型进行数据验证时,如果定义的字段类型与接收到的数据类型不匹配,FastAPI 会尝试进行转换。

如果用户使用curl命令调用该接口,history_len传入浮点数,FastAPI会尝试将小数部分截断,将其转换为整数。虽然不影响使用,但是在传参时,尽量与接口文档中定义的类型保持一致。

4.2 敏感信息输出问题

GaussMaster对日志内容做了敏感信息校验,如果某行日志中包含[“PASSWORD”, “PWD”, “AUTH”, “USERNAME”, “USER”, “CERTIFICATE”, “SSL”]等字段(不区分大小写),该行会用"Involves sensitive information, details are ignored.“代替。

4.3 使用openssl创建HTTPS所使用的SSL证书

GaussMaster服务默认支持SSL协议,所以需要先配置SSL证书才能启动。可参考如下步骤生成证书。

  1. 创建配置文件openssl.cnf,配置文件内容如下(用户可根据自己的需求做更详细的配置):

    [req] 
    distinguished_name = req_distinguished_name 
    [req_distinguished_name]
    
  2. 在openssl.cnf所在目录执行如下命令:

    openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout gaussmaster.key -out gaussmaster.crt -subj "/C=BE/ST=Antwerp/L=Brasschaat/O=Inuits/CN=localhost" -addext "subjectAltName = IP:192.0.2.1" -config openssl.cnf
    

    说明:

    • 要求openssl版本在1.1.1以上。
    • -newkey rsa:2048:生成一个新的RSA私钥,其密钥长度为2048位,并用于生成证书请求。
    • -subj “/C=BE/ST=Antwerp/L=Brasschaat/O=Inuits/CN=localhost”:设置证书的主题DN(Distinguished Name),包括国家(C),州或省(ST),城市或地区(L),组织(O),和通用名称(CN)。在这个例子中,CN被设置为localhost,通常用于本地开发环境。
    • -addext “subjectAltName=IP"指定证书可以用于哪些IP地址,具体IP地址根据用户需求自行修改。
  3. 上述命令执行完后,会要求用户输入私钥密码,用户按照要求输入密码后,会生成私钥文件gaussmaster.key和证书文件gaussmaster.crt。其中gaussmaster.key中的内容以”—--BEGIN ENCRYPTED PRIVATE KEY—--“开头,表示私钥已加密。用户可将生成的文件地址配置在配置文件中WEB-SERVICE章节。

说明: 用户也可以使用其他安全套接字层密码库生成证书,但是要确保curl工具和密码库配套使用。 例:基于OpenSSL生成证书后,如果要使用curl命令调用GaussMaster服务的API接口,首先需要确保curl支持OpenSSL,可通过curl -V命令查看,然后在curl命令后面附加证书路径、私钥路径、私钥密码参数,如下例。

curl -X 'GET' 'https://host:port/v1/api/xxx' -H 'accept: application/json' -H "Content-Type: application/json" --cacert /path/xxx.crt --key /path/xxx.key --cert /path/xxx.crt --pass "***"

4.4 curl接口中文字符问题

如果使用curl接口调用的话,需要将中文字符其转化为urlencode类型。例如,/v1/api/feedback/report接口的report_type参数。

意见反馈
编组 3备份
    openGauss 2025-06-07 22:42:34
    取消