require 'vendor/autoload.php';
require_once '/var/www/html/xduatools/duatools.php';
require 'ivita.php';
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\ResponseInterface;
$app=new \Slim\App();
#$request =\Slim\App::getInstance()->request();
#$msg=json_decode($request->getBody(),TRUE);
#$env =\Slim\Environment::getInstance(true);
#$remote_addr = $env["REMOTE_ADDR"];
#$http_agent = $env["HTTP_USER_AGENT"];
#$msg["ip"] = $remote_addr;
/**
* 每个 HTTP 请求都有一个请求体。如果你的 Slim 应用程序是通过 JSON 或 XML 数据进行通信的,你可以使用 PSR 7 请求对象的 getParsedBody() 方法将 HTTP 请求体解析成原生 PHP 格式。Slim 可以解析 JSON, XML, 和 URL-encoded 数据,开箱即用
* JSON 请求通过 json_decode($input) 转换成 PHP 对象。
* XML 请求通过 simplexml_load_string($input) 转换成 SimpleXMLElement 。
* URL-encoded 请求通过 parse_str($input) 转换成 PHP 数组。
* 从技术上说,Slim 的 PSR 7 请求对象将 HTTP 请求体表示为 \Psr\Http\Message\StreamInterface 的一个实例。你可以通过使用 PSR 7 请求对象的 getBody() 方法获取 HTTP 请求体的 StreamInterface 实例。该 getBody() 方法在处理未知大小或对于可用内存来说太大的 HTTP 请求时,是个很好的方法。
**/
#$env =\Slim\Environment::getInstance(true);
#verifySignature($env);
$app->get('/test', function($request, $response, $args){
okdie();
});
/**
* 添加parkins事件到服务器
* */
$app->post('/event', function($request,$response, $args){
#console_log($request);
$ivitaHandler = new ivita();
$ivitaHandler->load();
$msg = $request->getParsedBody();
#$msg = json_decode($request->getBody(), TRUE);
$uid = $msg["uid"];
$type= $msg["type"];
$tag= $msg["tag"];
$batch= $msg["batch"];
$data= $msg["data"];
$stamp_offset = 0;
$lot = 0;
$ivitaHandler->addEvent($uid, $tag,$type,$batch,$data,$stamp_offset,$lot);
});
$app->get('/event/patbatchedevent/{pid}', function($request, $response, $args){
$ivitaHandler= new ivita();
$ivitaHandler->load();
$pid= intval($args["pid"]);
$ivitaHandler->getBatchedEventByPid($pid);
});
/**
* 添加parkins事件到服务器
* */
$app->get('/event/eventbydate/{tag}/{date}/{page}', function($request, $response, $args){
if($date == "help"){
$help = [
"url"=>"/event/".$args["tag"]."/{以年月日表达的日期:如20170707}",
"params"=>[
"urlpfx"=>"文件下载URL的前缀",
"type"=>"数据的类型,有Sound,Tremor等",
"uid"=>"用户的id",
"data"=>["score"=>"医生打分","doctor"=>"医生名字","patient"=>"病人名字","file"=>"文件后缀"],
]
];
nodie(1,"本接口说明",$help);
}
$ivitaHandler = new ivita();
$ivitaHandler->load();
$tag= $args["tag"];
$date= intval($args["date"]);
$page= intval($args["page"]);
$ivitaHandler->getEvent($tag,$date,$page);
});
/**
* 添加parkins事件到服务器
* */
$app->get('/event/pateventoftype/{pid}/{type}', function($request, $response, $args){
$ivitaHandler = new ivita();
$ivitaHandler->load();
$pid= intval($args["pid"]);
$type= intval($args["type"]);
$ivitaHandler->getEventByPidType($pid,$type);
});
/**
* 添加parkins的按字段统计的功能,按天统计只是其中一个特例
* */
$app->get('/event_count_group/{tag}/{field}', function($request, $response, $args){
$ivitaHandler = new ivita();
$ivitaHandler->load();
$tag= $args["tag"];
$field= $args["field"];
$ivitaHandler->getEventCountGroupBy($tag,$field);
});
/**
* 添加parkins的按field作为条件,group_field作为统计的条件
* */
$app->get('/event_count_group_by_type/{tag}/{field}', function($request, $response, $args){
$ivitaHandler = new ivita();
$ivitaHandler->load();
$tag= $args["tag"];
$field= $args["field"];
$ivitaHandler->getEventCountGroupByType($tag,$field);
});
/**
* 添加parkins按日统计到
* */
$app->get('/event_count_daily/{tag}', function($request, $response, $args){
$ivitaHandler = new ivita();
$ivitaHandler->load();
$tag= $args["tag"];
$ivitaHandler->getEventCountDaily($tag);
});
/**
* 添加parkins按条件查询,仅用于parevent表
* */
$app->get('/parevent/{filed}/{filed_val}', function($request, $response, $args){
$ivitaHandler = new ivita();
$ivitaHandler->load();
$filed= $args["filed"];
$filed_val = $args["filed_val"];
$ivitaHandler->getParEventFilteredEvents($filed,$filed_val);
});
/**
* 添加parkins按条件查询,仅用于parevent表
* */
$app->post('/users', function($request, $response, $args){
$ivitaHandler = new ivita();
$ivitaHandler->load();
$msg = $request->getParsedBody();
console_log("------------------------------");
console_log($msg);
$ivitaHandler->addUser($msg);
});
/***
* 返回从aid这个应用注册的所有用户
* 帕金森医生版的aid=3024
* http://api.xdua.org/users/aid/3024/10
* 帕金森病人版的aid=132795,这是我预先自设的aid
* */
$app->get('/users/patsofdoc/{doc_uid}/{limit}', function ($request,$response,$args){
$ivitaHandler = new ivita();
$ivitaHandler->load();
$doc_uid= intval($args["doc_uid"]);
$limit= intval($args["limit"]);
$ivitaHandler->getPatsByDocUid($doc_uid, $limit);
});
/***
* 返回pardoc列表
* */
$app->get('/users/list/{utable}/{page}', function ($request,$response,$args){
$ivitaHandler = new ivita();
$ivitaHandler->load();
$utable= $args["utable"];
$page= intval($args["page"]);
$ivitaHandler->getUserList($utable, $page);
});
$app->run();
?>
一键复制
编辑
Web IDE
原始数据
按行查看
历史