Exemple
Exemplele de mai jos folosesc CHEIA_DVS_API ca substituent - înlocuiți-l cu cheia reală din Contul meu → Cheie API.
Încărcarea unui fișier
cURL
curl -X POST https://pixhub.ro/api/upload \
-H "X-Api-Key: CHEIA_DVS_API" \
-F "file=@/cale/catre/fotografie.jpg"
JavaScript (fetch)
const formData = new FormData();
formData.append('file', inputFisier.files[0]);
const raspuns = await fetch('https://pixhub.ro/api/upload', {
method: 'POST',
headers: { 'X-Api-Key': 'CHEIA_DVS_API' },
body: formData,
});
const { upload } = await raspuns.json();
console.log(upload.url); // URL-ul paginii
console.log(upload.direct_url); // URL direct la fișier
Python (requests)
import requests
with open('/cale/catre/fotografie.jpg', 'rb') as f:
raspuns = requests.post(
'https://pixhub.ro/api/upload',
headers={'X-Api-Key': 'CHEIA_DVS_API'},
files={'file': f},
)
raspuns.raise_for_status()
upload = raspuns.json()['upload']
print(upload['url'])
print(upload['direct_url'])
Listarea fișierelor (cu paginare)
cURL
curl "https://pixhub.ro/api/uploads?page=2" \
-H "X-Api-Key: CHEIA_DVS_API"
JavaScript
const raspuns = await fetch('https://pixhub.ro/api/uploads?page=1', {
headers: { 'X-Api-Key': 'CHEIA_DVS_API' },
});
const date = await raspuns.json();
date.data.forEach(u => console.log(u.slug, u.url));
Ștergerea unui fișier
cURL
curl -X DELETE https://pixhub.ro/api/uploads/aB3kX9 \
-H "X-Api-Key: CHEIA_DVS_API"
JavaScript
await fetch('https://pixhub.ro/api/uploads/aB3kX9', {
method: 'DELETE',
headers: { 'X-Api-Key': 'CHEIA_DVS_API' },
});
Gestionarea limitărilor de cereri
JavaScript cu reîncercare automată
async function cerereApi(url, optiuni = {}) {
const raspuns = await fetch(url, {
...optiuni,
headers: { 'X-Api-Key': 'CHEIA_DVS_API', ...optiuni.headers },
});
if (raspuns.status === 429) {
const asteapta = parseInt(raspuns.headers.get('Retry-After') ?? '60', 10);
await new Promise(r => setTimeout(r, asteapta * 1000));
return cerereApi(url, optiuni); // reîncercare
}
if (!raspuns.ok) {
const { error } = await raspuns.json();
throw new Error(error);
}
return raspuns.json();
}
// Utilizare
const statistici = await cerereApi('https://pixhub.ro/api/stats');
Python cu reîncercare automată
import requests, time
def cerere_api(cale, cheie_api, reincercari=3):
for incercare in range(reincercari):
r = requests.get(
f'https://pixhub.ro/api{cale}',
headers={'X-Api-Key': cheie_api},
)
if r.status_code == 429:
asteapta = int(r.headers.get('Retry-After', 60))
time.sleep(asteapta)
continue
r.raise_for_status()
return r.json()
raise RuntimeError('Limita de cereri nu a fost rezolvată după reîncercări')
statistici = cerere_api('/stats', 'CHEIA_DVS_API')
print(statistici)