上传文件至 /
This commit is contained in:
152
api-docs.php
Normal file
152
api-docs.php
Normal file
@@ -0,0 +1,152 @@
|
||||
<?php
|
||||
require_once 'config.php';
|
||||
|
||||
if (!isset($_SESSION['user_id'])) {
|
||||
header('Location: login.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
try {
|
||||
$stmt = $pdo->prepare("SELECT api_key FROM users WHERE id = ?");
|
||||
$stmt->execute([$_SESSION['user_id']]);
|
||||
$user = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
} catch(PDOException $e) {
|
||||
$user = ['api_key' => null];
|
||||
}
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="<?php echo $lang; ?>" data-theme="<?php echo $currentUserSettings['dark_mode'] ? 'dark' : 'light'; ?>">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title><?php echo t('api_docs'); ?> - <?php echo SITE_NAME; ?></title>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<?php include 'components/navbar.php'; ?>
|
||||
|
||||
<div class="container">
|
||||
<h1><i class="fas fa-code"></i> <?php echo t('api_documentation'); ?></h1>
|
||||
|
||||
<div class="api-docs-container">
|
||||
<section class="api-section card">
|
||||
<h2><i class="fas fa-key"></i> <?php echo t('api_management'); ?></h2>
|
||||
<?php if(empty($user['api_key'])): ?>
|
||||
<p><?php echo t('no_api_key_message'); ?></p>
|
||||
<form method="POST" action="generate-api-key.php">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<i class="fas fa-plus"></i> <?php echo t('generate_api_key'); ?>
|
||||
</button>
|
||||
</form>
|
||||
<?php else: ?>
|
||||
<div class="api-key-display">
|
||||
<label><strong><i class="fas fa-key"></i> <?php echo t('your_api_key'); ?>:</strong></label>
|
||||
<div class="api-key-input">
|
||||
<input type="text" value="<?php echo $user['api_key']; ?>" id="apiKey" readonly>
|
||||
<button onclick="copyApiKey()" class="btn">
|
||||
<i class="fas fa-copy"></i> <?php echo t('copy'); ?>
|
||||
</button>
|
||||
<form method="POST" action="generate-api-key.php" style="display: inline;">
|
||||
<button type="submit" class="btn btn-secondary" onclick="return confirm('<?php echo t('confirm_regenerate_api_key'); ?>')">
|
||||
<i class="fas fa-sync"></i> <?php echo t('regenerate_key'); ?>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<small><i class="fas fa-shield-alt"></i> <?php echo t('keep_secret'); ?></small>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</section>
|
||||
|
||||
<section class="api-section card mt-3">
|
||||
<h2><i class="fas fa-plug"></i> <?php echo t('api_endpoints'); ?></h2>
|
||||
|
||||
<div class="api-endpoint">
|
||||
<h3><i class="fas fa-cloud-upload-alt"></i> 1. <?php echo t('upload_image'); ?></h3>
|
||||
<div class="code-block">
|
||||
<span class="endpoint">POST</span> <?php echo SITE_URL; ?>/api/upload.php<br><br>
|
||||
<span class="comment">// <?php echo t('headers'); ?>:</span><br>
|
||||
Content-Type: multipart/form-data<br><br>
|
||||
<span class="comment">// <?php echo t('parameters'); ?>:</span><br>
|
||||
api_key = <span class="param">string</span> (<?php echo t('required'); ?>)<br>
|
||||
image = <span class="param">file</span> (<?php echo t('required'); ?>)<br>
|
||||
title = <span class="param">string</span> (<?php echo t('optional'); ?>)<br>
|
||||
tags = <span class="param">string</span> (<?php echo t('optional'); ?>)<br>
|
||||
is_public = <span class="param">integer</span> (<?php echo t('optional'); ?>)<br><br>
|
||||
<span class="comment">// <?php echo t('success_response'); ?>:</span><br>
|
||||
{<br>
|
||||
"success": true,<br>
|
||||
"data": {<br>
|
||||
"id": 123,<br>
|
||||
"title": "<?php echo t('image_title'); ?>",<br>
|
||||
"url": "<?php echo SITE_URL; ?>/view-image.php?id=123",<br>
|
||||
"direct_url": "<?php echo SITE_URL; ?>/uploads/filename.jpg",<br>
|
||||
"tags": ["<?php echo t('landscape'); ?>", "<?php echo t('nature'); ?>"]<br>
|
||||
}<br>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="api-endpoint mt-3">
|
||||
<h3><i class="fas fa-images"></i> 2. <?php echo t('get_images'); ?></h3>
|
||||
<div class="code-block">
|
||||
<span class="endpoint">GET</span> <?php echo SITE_URL; ?>/api/images.php?api_key=<?php echo $user['api_key'] ?? 'YOUR_API_KEY'; ?>&page=1&limit=20<br><br>
|
||||
<span class="comment">// <?php echo t('parameters'); ?>:</span><br>
|
||||
api_key = <span class="param">string</span> (<?php echo t('required'); ?>)<br>
|
||||
page = <span class="param">integer</span> (<?php echo t('optional'); ?>)<br>
|
||||
limit = <span class="param">integer</span> (<?php echo t('optional'); ?>)<br><br>
|
||||
<span class="comment">// <?php echo t('success_response'); ?>:</span><br>
|
||||
{<br>
|
||||
"success": true,<br>
|
||||
"data": [<br>
|
||||
{<br>
|
||||
"id": 123,<br>
|
||||
"title": "<?php echo t('image_title'); ?>",<br>
|
||||
"url": "<?php echo SITE_URL; ?>/view-image.php?id=123",<br>
|
||||
"direct_url": "<?php echo SITE_URL; ?>/uploads/filename.jpg",<br>
|
||||
"is_public": 1,<br>
|
||||
"views": 45,<br>
|
||||
"file_size_formatted": "2.5 MB"<br>
|
||||
}<br>
|
||||
],<br>
|
||||
"pagination": {<br>
|
||||
"page": 1,<br>
|
||||
"limit": 20,<br>
|
||||
"total": 150,<br>
|
||||
"pages": 8<br>
|
||||
}<br>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="api-endpoint mt-3">
|
||||
<h3><i class="fas fa-terminal"></i> 3. <?php echo t('curl_examples'); ?></h3>
|
||||
<div class="code-block">
|
||||
<span class="comment"># <?php echo t('upload_image'); ?></span><br>
|
||||
curl -X POST \<br>
|
||||
-F "api_key=<?php echo $user['api_key'] ?? 'YOUR_API_KEY'; ?>" \<br>
|
||||
-F "title=<?php echo t('my_image'); ?>" \<br>
|
||||
-F "is_public=1" \<br>
|
||||
-F "image=@/path/to/your/image.jpg" \<br>
|
||||
"<?php echo SITE_URL; ?>/api/upload.php"
|
||||
</div>
|
||||
|
||||
<div class="code-block mt-2">
|
||||
<span class="comment"># <?php echo t('get_images'); ?></span><br>
|
||||
curl "<?php echo SITE_URL; ?>/api/images.php?api_key=<?php echo $user['api_key'] ?? 'YOUR_API_KEY'; ?>&page=1&limit=10"
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function copyApiKey() {
|
||||
const apiKey = document.getElementById('apiKey');
|
||||
apiKey.select();
|
||||
document.execCommand('copy');
|
||||
alert('<?php echo t('api_key_copied'); ?>');
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user