feat(api): 新增获取所有开发者列表接口并添加OpenAPI文档
添加了获取所有开发者列表的API端点,支持分页查询并返回开发者信息及其应用统计 同时新增了完整的OpenAPI规范文档,描述所有API端点的详细参数和响应格式
This commit is contained in:
67
api.php
67
api.php
@@ -9,6 +9,7 @@
|
||||
* - /api.php?t=gettagapp&id={tagid} - 获取某标签里的APP列表
|
||||
* - /api.php?t=getdeveloperapp&id={developerid} - 获取某开发者的APP列表
|
||||
* - /api.php?t=getdeveloperinfo&id={developerid} - 获取开发者信息
|
||||
* - /api.php?t=getalldevelopers - 获取所有开发者列表
|
||||
* - /api.php?t=getacc - 获取所有公告
|
||||
* - /api.php?t=getcount - 获取计数信息
|
||||
* - /api.php?t=getappversions&id={appid} - 获取某个应用的版本列表
|
||||
@@ -71,6 +72,9 @@ switch ($apiType) {
|
||||
case 'getappversions':
|
||||
getAppVersions();
|
||||
break;
|
||||
case 'getalldevelopers':
|
||||
getAllDevelopers();
|
||||
break;
|
||||
default:
|
||||
showApiEndpoints();
|
||||
break;
|
||||
@@ -115,6 +119,7 @@ function showApiEndpoints() {
|
||||
'/api.php?t=gettagapp&id={tagid}' => '获取某标签里的APP列表',
|
||||
'/api.php?t=getdeveloperapp&id={developerid}' => '获取某开发者的APP列表',
|
||||
'/api.php?t=getdeveloperinfo&id={developerid}' => '获取开发者信息',
|
||||
'/api.php?t=getalldevelopers' => '获取所有开发者列表',
|
||||
'/api.php?t=getacc' => '获取所有公告',
|
||||
'/api.php?t=getcount' => '获取计数信息(如所有APP的数量、开发者的数量等)',
|
||||
'/api.php?t=getappversions&id={appid}' => '获取某个应用的版本列表'
|
||||
@@ -544,6 +549,68 @@ function getCountInfo() {
|
||||
sendSuccessResponse($counts);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有开发者列表
|
||||
*/
|
||||
function getAllDevelopers() {
|
||||
global $conn;
|
||||
|
||||
// 获取分页参数
|
||||
$page = isset($_GET['page']) ? max(1, intval($_GET['page'])) : 1;
|
||||
$limit = isset($_GET['limit']) ? min(100, max(1, intval($_GET['limit']))) : 20;
|
||||
$offset = ($page - 1) * $limit;
|
||||
|
||||
// 获取总数量
|
||||
$countSql = "SELECT COUNT(*) as total FROM developers";
|
||||
$countResult = $conn->query($countSql);
|
||||
$total = $countResult->fetch_assoc()['total'] ?? 0;
|
||||
$totalPages = ceil($total / $limit);
|
||||
|
||||
// 获取开发者列表
|
||||
$sql = "SELECT id, username, email, created_at FROM developers ORDER BY created_at DESC LIMIT ?, ?";
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->bind_param("ii", $offset, $limit);
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
|
||||
$developers = [];
|
||||
while ($row = $result->fetch_assoc()) {
|
||||
// 获取每个开发者的应用数量
|
||||
$appCountSql = "SELECT COUNT(*) as count FROM apps WHERE developer_id = ? AND status = 'approved' AND is_approved = 1";
|
||||
$appCountStmt = $conn->prepare($appCountSql);
|
||||
$appCountStmt->bind_param("i", $row['id']);
|
||||
$appCountStmt->execute();
|
||||
$appCountResult = $appCountStmt->get_result();
|
||||
$appCount = $appCountResult->fetch_assoc()['count'] ?? 0;
|
||||
$row['app_count'] = $appCount;
|
||||
|
||||
// 获取每个开发者的总下载量
|
||||
$downloadCountSql = "SELECT SUM(download_count) as count FROM app_versions
|
||||
JOIN apps ON app_versions.app_id = apps.id
|
||||
WHERE apps.developer_id = ?";
|
||||
$downloadCountStmt = $conn->prepare($downloadCountSql);
|
||||
$downloadCountStmt->bind_param("i", $row['id']);
|
||||
$downloadCountStmt->execute();
|
||||
$downloadCountResult = $downloadCountStmt->get_result();
|
||||
$downloadCount = $downloadCountResult->fetch_assoc()['count'] ?? 0;
|
||||
$row['total_downloads'] = $downloadCount;
|
||||
|
||||
$developers[] = $row;
|
||||
}
|
||||
|
||||
$response = [
|
||||
'developers' => $developers,
|
||||
'pagination' => [
|
||||
'total' => $total,
|
||||
'page' => $page,
|
||||
'limit' => $limit,
|
||||
'totalPages' => $totalPages
|
||||
]
|
||||
];
|
||||
|
||||
sendSuccessResponse($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定应用的版本列表
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user