feat(api): 新增获取所有开发者列表接口并添加OpenAPI文档

添加了获取所有开发者列表的API端点,支持分页查询并返回开发者信息及其应用统计
同时新增了完整的OpenAPI规范文档,描述所有API端点的详细参数和响应格式
This commit is contained in:
2025-09-21 20:04:41 +08:00
parent a0fe74bbe9
commit 439f1c6bd9
2 changed files with 1158 additions and 0 deletions

67
api.php
View File

@@ -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);
}
/**
* 获取指定应用的版本列表
*/