# aviator-test **Repository Path**: halozhy/aviator-test ## Basic Information - **Project Name**: aviator-test - **Description**: SpringBoot x AviatorScript Demo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2023-02-03 - **Last Updated**: 2024-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot, AviatorScript ## README # 一个基于SpringBoot调用AviatorScript库的Demo 主要目的是方便别的语言,如python,通过HTTP API调用AviatorScript的功能 ## 接口文档 ### /test 请求方式:POST 请求路径:`http://localhost:8080/test` 请求体格式:HTTP Body,json格式 请求体含义: ```json { "formula": "<待计算的公式字符串>", "<参数1>": <参数1的值>, "<参数2>": <参数2的值>, ... } ``` 返回体格式及含义 ```json { "formula": "<待计算的公式字符串>", "<参数1>": <参数1的值>, "<参数2>": <参数2的值> ... "result": <公式计算后的结果> } ``` #### 示例1 请求体 ```json { "formula":"PSI100001=100-BPI100001*100", "BPI100001":1 } ``` 返回值 ```json { "formula": "PSI100001=100-BPI100001*100", "BPI100001": "1", "result": 0.0 } ``` #### 示例2 请求体 ```json { "formula":"PSI100002=100-BPI100003*60-BPI100004/3.0*40", "BPI100003":1, "BPI100004":2 } ``` 返回值 ```json { "formula": "PSI100002=100-BPI100003*60-BPI100004/3.0*40", "BPI100003": "1", "BPI100004": "2", "result": 13.333333 } ``` #### 示例3 当formula中传入if-else型的公式时,需要把换行符去掉,因为json格式要求字符串中不能有换行符,请保证传入formula的字符串是一行 请求体 ```json { "formula":"if(BPI100008<160){PSI100005=100-(162.86-BPI100008)*3.5}elsif(BPI100008>170){PSI100005=100-(BPI100008-167.14)*3.5}elsif((160<=BPI100008)&&(BPI100008<=170)){PSI100005=100-abs(165-BPI100008)*2}", "BPI100008":1 } ``` 返回值 ```json { "formula": "if(BPI100008<160){PSI100005=100-(162.86-BPI100008)*3.5}elsif(BPI100008>170){PSI100005=100-(BPI100008-167.14)*3.5}elsif((160<=BPI100008)&&(BPI100008<=170)){PSI100005=100-abs(165-BPI100008)*2}", "BPI100008": "1", "result": -466.51 } ``` 另外,如果请求体中的参数缺失或名称不正确,那么返回值中将不包含`result`项 #### 使用 python 调用此程序的一个demo如下 前提是需要在后台运行着此java项目 ```python import requests import json url = "http://localhost:8080/test" payload = json.dumps({ "formula": "PSI100002=100-BPI100003*60-BPI100004/3.0*40", "BPI100003": 1, "BPI100004": 2 }) headers = { 'Content-Type': 'application/json' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text) response_json = json.loads(response.text) print(response_json["result"]) ``` 成功调用后应当在控制台看到如下结果 ```bash {"formula":"PSI100002=100-BPI100003*60-BPI100004/3.0*40","BPI100003":"1","BPI100004":"2","result":13.333333} 13.333333 ```